mirror of
https://github.com/selfxyz/self.git
synced 2026-04-05 03:00:53 -04:00
feat: support sha512 brainpoolP384r1
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
pragma circom 2.1.9;
|
||||
|
||||
include "../openpassport_prove.circom";
|
||||
|
||||
component main { public [ scope, user_identifier, current_date] } = OPENPASSPORT_PROVE(26, 64, 6, 640, 256, 20);
|
||||
@@ -125,7 +125,7 @@ template EcdsaVerifier(signatureAlgorithm, n, k) {
|
||||
ecdsa_verify.hashed <== hash;
|
||||
ecdsa_verify.dummy <== 0;
|
||||
}
|
||||
if (signatureAlgorithm == 22) {
|
||||
if (signatureAlgorithm == 22 || signatureAlgorithm == 26) {
|
||||
component ecdsa_verify = verifyECDSABits(n, k, [
|
||||
335737924824737830,
|
||||
9990533504564909291,
|
||||
|
||||
@@ -23,6 +23,7 @@ pragma circom 2.1.9;
|
||||
23: ecdsa_sha256_secp384r1_384
|
||||
24: ecdsa_sha384_brainpoolP256r1_256
|
||||
25: ecdsa_sha512_brainpoolP256r1_256
|
||||
26: ecdsa_sha512_brainpoolP384r1_384
|
||||
*/
|
||||
|
||||
function getHashLength(signatureAlgorithm) {
|
||||
@@ -92,6 +93,9 @@ function getHashLength(signatureAlgorithm) {
|
||||
if (signatureAlgorithm == 25) {
|
||||
return 512;
|
||||
}
|
||||
if (signatureAlgorithm == 26) {
|
||||
return 512;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -155,9 +159,13 @@ function getKeyLength(signatureAlgorithm) {
|
||||
}
|
||||
if (signatureAlgorithm == 24) {
|
||||
return 256;
|
||||
} if (signatureAlgorithm == 25) {
|
||||
}
|
||||
if (signatureAlgorithm == 25) {
|
||||
return 256;
|
||||
}
|
||||
if (signatureAlgorithm == 26) {
|
||||
return 384;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -226,6 +234,9 @@ function getKLengthFactor(signatureAlgorithm) {
|
||||
if (signatureAlgorithm == 25) {
|
||||
return 2;
|
||||
}
|
||||
if (signatureAlgorithm == 26) {
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ template SignatureVerifier(signatureAlgorithm, n, k) {
|
||||
|| signatureAlgorithm == 23
|
||||
|| signatureAlgorithm == 24
|
||||
|| signatureAlgorithm == 25
|
||||
|| signatureAlgorithm == 26
|
||||
) {
|
||||
EcdsaVerifier (signatureAlgorithm, n, k)(signature, pubKey, hash);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MHgCAQEEIFuQVhd8HfMpFLdTH60+UA1HfePAQkfeaGH6V9FJe5kioAsGCSskAwMC
|
||||
CAEBB6FEA0IABCAx2ey4sj3xDzMbrJyjyINrSw57z98QcllbStcRHCz2YIfUUvsh
|
||||
KwkgnEMAWec4iy3jeZ8yeLcoGk0fi6iCoLk=
|
||||
MIGoAgEBBDB4JkHrXVXl2oWIH04Wh0ERPrGi+oW6Gm4Qs+QMlzMlZFz/pGn9BbFo
|
||||
VwHIejJ8fuWgCwYJKyQDAwIIAQELoWQDYgAEgFY8mpSYBoiXECveGnKHO/9PW96k
|
||||
WT80fBf3/tz8vytQGhLzqFS4kcxSsoO9lJXnfLk+PTqKyHGX8wPAqD9MvGcD8pj1
|
||||
uvEviUV7Hp99wos7JXGGdm8koJhAvfGSt6N3
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIB3zCCAYagAwIBAgIUQYSjqrXJx+UTzjryNw2jl8a8bUowCgYIKoZIzj0EAwQw
|
||||
MIICIDCCAaagAwIBAgIUUxZNjQROjb8L3QFE3qKEAOuGA/4wCgYIKoZIzj0EAwQw
|
||||
RTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
|
||||
dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDEyMjgwODU5NDFaFw0yNTEyMjgw
|
||||
ODU5NDFaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
|
||||
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwWjAUBgcqhkjOPQIBBgkrJAMD
|
||||
AggBAQcDQgAEIDHZ7LiyPfEPMxusnKPIg2tLDnvP3xByWVtK1xEcLPZgh9RS+yEr
|
||||
CSCcQwBZ5ziLLeN5nzJ4tygaTR+LqIKguaNTMFEwHQYDVR0OBBYEFDxCzGkoR6xw
|
||||
Im2XGg/24tJ+2fgyMB8GA1UdIwQYMBaAFDxCzGkoR6xwIm2XGg/24tJ+2fgyMA8G
|
||||
A1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwQDRwAwRAIgPC4h2/aUem5OMnwMy42R
|
||||
9j/NhYacXZGKXZv5KVBq5o4CIE/LcOS7bs7K3uNOdFxdJDCpK56YGV4H3O1paLpt
|
||||
VqPW
|
||||
dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDEyMjgxMDA3MDdaFw0yNTEyMjgx
|
||||
MDA3MDdaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
|
||||
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwejAUBgcqhkjOPQIBBgkrJAMD
|
||||
AggBAQsDYgAEgFY8mpSYBoiXECveGnKHO/9PW96kWT80fBf3/tz8vytQGhLzqFS4
|
||||
kcxSsoO9lJXnfLk+PTqKyHGX8wPAqD9MvGcD8pj1uvEviUV7Hp99wos7JXGGdm8k
|
||||
oJhAvfGSt6N3o1MwUTAdBgNVHQ4EFgQUUgkQRw5jvunoflxxAvX5Yc+ROgswHwYD
|
||||
VR0jBBgwFoAUUgkQRw5jvunoflxxAvX5Yc+ROgswDwYDVR0TAQH/BAUwAwEB/zAK
|
||||
BggqhkjOPQQDBANoADBlAjEAhtyXbjYqxVBT4KonoZcYciftQkRt+0DxBnPmRZ52
|
||||
d67SbyA9LP/7XDTg8qw++aPyAjAFYTG7tu/EGBqWfvSCjEo0aK9ZS/eS5HZoTfs7
|
||||
dzuXqOBuBj1L+HpiiBobsDhL63c=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
@@ -26,10 +26,11 @@ const sigAlgs = [
|
||||
// { sigAlg: 'ecdsa', hashFunction: 'sha1', domainParameter: 'secp256r1', keyLength: '256' },
|
||||
// { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'brainpoolP256r1', keyLength: '256' },
|
||||
// { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP256r1', keyLength: '256' },
|
||||
{ sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP256r1', keyLength: '256' },
|
||||
// { sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP256r1', keyLength: '256' },
|
||||
// { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'secp384r1', keyLength: '384' },
|
||||
// { sigAlg: 'ecdsa', hashFunction: 'sha256', domainParameter: 'secp384r1', keyLength: '384' },
|
||||
// { sigAlg: 'ecdsa', hashFunction: 'sha384', domainParameter: 'brainpoolP384r1', keyLength: '384' },
|
||||
{ sigAlg: 'ecdsa', hashFunction: 'sha512', domainParameter: 'brainpoolP384r1', keyLength: '384' },
|
||||
];
|
||||
|
||||
sigAlgs.forEach(({ sigAlg, hashFunction, domainParameter, keyLength }) => {
|
||||
|
||||
Reference in New Issue
Block a user