mirror of
https://github.com/selfxyz/self.git
synced 2026-01-10 07:08:10 -05:00
lint
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
import crypto from 'crypto';
|
||||
import { splitToWords, hexToDecimal, bytesToBigDecimal, getNAndK } from '../../../common/src/utils/utils';
|
||||
import {
|
||||
splitToWords,
|
||||
hexToDecimal,
|
||||
bytesToBigDecimal,
|
||||
getNAndK,
|
||||
} from '../../../common/src/utils/utils';
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
|
||||
export const generateMockRsaPkcs1v1_5Inputs = (
|
||||
signatureAlgorithm: SignatureAlgorithm,
|
||||
) => {
|
||||
export const generateMockRsaPkcs1v1_5Inputs = (signatureAlgorithm: SignatureAlgorithm) => {
|
||||
let privateKey: string;
|
||||
let publicKey: string;
|
||||
let signAlgorithm: string;
|
||||
@@ -33,12 +36,12 @@ export const generateMockRsaPkcs1v1_5Inputs = (
|
||||
publicExponent,
|
||||
publicKeyEncoding: {
|
||||
type: 'spki',
|
||||
format: 'pem'
|
||||
format: 'pem',
|
||||
},
|
||||
privateKeyEncoding: {
|
||||
type: 'pkcs8',
|
||||
format: 'pem'
|
||||
}
|
||||
format: 'pem',
|
||||
},
|
||||
}));
|
||||
|
||||
const message = Buffer.from('test message');
|
||||
@@ -51,10 +54,14 @@ export const generateMockRsaPkcs1v1_5Inputs = (
|
||||
const modulus = keyDetails.n!; // base64url encoded modulus
|
||||
|
||||
const { n, k } = getNAndK(signatureAlgorithm);
|
||||
|
||||
|
||||
return {
|
||||
signature: splitToWords(BigInt(bytesToBigDecimal(Array.from(signature))), n, k),
|
||||
modulus: splitToWords(BigInt(hexToDecimal(Buffer.from(modulus, 'base64url').toString('hex'))), n, k),
|
||||
message: splitToWords(BigInt(bytesToBigDecimal(Array.from(messageHash))), n, k)
|
||||
modulus: splitToWords(
|
||||
BigInt(hexToDecimal(Buffer.from(modulus, 'base64url').toString('hex'))),
|
||||
n,
|
||||
k
|
||||
),
|
||||
message: splitToWords(BigInt(bytesToBigDecimal(Array.from(messageHash))), n, k),
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,47 +1,47 @@
|
||||
import { wasm as wasmTester } from "circom_tester";
|
||||
import { describe, it } from "mocha";
|
||||
import path from "path";
|
||||
import { generateMockRsaPkcs1v1_5Inputs } from "./generateMockInputsInCircuits";
|
||||
import { SignatureAlgorithm } from "../../../common/src/utils/types";
|
||||
import { wasm as wasmTester } from 'circom_tester';
|
||||
import { describe, it } from 'mocha';
|
||||
import path from 'path';
|
||||
import { generateMockRsaPkcs1v1_5Inputs } from './generateMockInputsInCircuits';
|
||||
import { SignatureAlgorithm } from '../../../common/src/utils/types';
|
||||
|
||||
describe("VerifyRsaPkcs1v1_5 Circuit Test", function() {
|
||||
this.timeout(30000);
|
||||
describe('VerifyRsaPkcs1v1_5 Circuit Test', function () {
|
||||
this.timeout(30000);
|
||||
|
||||
const rsaAlgorithms: SignatureAlgorithm[] = [
|
||||
'rsa_sha1_65537_2048',
|
||||
'rsa_sha256_65537_2048',
|
||||
'rsa_sha256_3_2048',
|
||||
'rsa_sha256_65537_3072'
|
||||
];
|
||||
const rsaAlgorithms: SignatureAlgorithm[] = [
|
||||
'rsa_sha1_65537_2048',
|
||||
'rsa_sha256_65537_2048',
|
||||
'rsa_sha256_3_2048',
|
||||
'rsa_sha256_65537_3072',
|
||||
];
|
||||
|
||||
rsaAlgorithms.forEach((algorithm) => {
|
||||
it(`should verify RSA signature using the circuit for ${algorithm}`, async function() {
|
||||
// Generate inputs using the utility function
|
||||
const { signature, modulus, message } = generateMockRsaPkcs1v1_5Inputs(algorithm);
|
||||
rsaAlgorithms.forEach((algorithm) => {
|
||||
it(`should verify RSA signature using the circuit for ${algorithm}`, async function () {
|
||||
// Generate inputs using the utility function
|
||||
const { signature, modulus, message } = generateMockRsaPkcs1v1_5Inputs(algorithm);
|
||||
|
||||
// Run circuit with inputs
|
||||
const circuit = await wasmTester(
|
||||
path.join(__dirname, `../../circuits/tests/utils/test_${algorithm}.circom`),
|
||||
{
|
||||
include: [
|
||||
'node_modules',
|
||||
'./node_modules/@zk-kit/binary-merkle-root.circom/src',
|
||||
'./node_modules/circomlib/circuits',
|
||||
],
|
||||
}
|
||||
);
|
||||
// Run circuit with inputs
|
||||
const circuit = await wasmTester(
|
||||
path.join(__dirname, `../../circuits/tests/utils/test_${algorithm}.circom`),
|
||||
{
|
||||
include: [
|
||||
'node_modules',
|
||||
'./node_modules/@zk-kit/binary-merkle-root.circom/src',
|
||||
'./node_modules/circomlib/circuits',
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
// Log the inputs for debugging
|
||||
console.log(`Testing algorithm: ${algorithm}`);
|
||||
// Log the inputs for debugging
|
||||
console.log(`Testing algorithm: ${algorithm}`);
|
||||
|
||||
const witness = await circuit.calculateWitness({
|
||||
signature,
|
||||
modulus,
|
||||
message
|
||||
});
|
||||
const witness = await circuit.calculateWitness({
|
||||
signature,
|
||||
modulus,
|
||||
message,
|
||||
});
|
||||
|
||||
// Check constraints
|
||||
await circuit.checkConstraints(witness);
|
||||
});
|
||||
// Check constraints
|
||||
await circuit.checkConstraints(witness);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user