feat: support sha512 brainpoolP384r1

This commit is contained in:
ayman
2024-12-28 16:13:12 +05:30
parent 6e4a72f90d
commit 9504103a7b
11 changed files with 73 additions and 18 deletions

View File

@@ -42,8 +42,9 @@ export const MAX_PADDED_ECONTENT_LEN: Partial<
rsa_sha256_3_2048: 384,
ecdsa_sha256_brainpoolP256r1_256: 384,
ecdsa_sha384_brainpoolP256r1_256: 512,
ecdsa_sha512_brainpoolP256r1_256: 640,
ecdsa_sha384_brainpoolP384r1_384: 512,
ecdsa_sha512_brainpoolP256r1_256: 640,
ecdsa_sha512_brainpoolP384r1_384: 640,
};
export const MAX_PADDED_SIGNED_ATTR_LEN: Partial<
@@ -67,6 +68,7 @@ export const MAX_PADDED_SIGNED_ATTR_LEN: Partial<
ecdsa_sha384_brainpoolP256r1_256: 256,
ecdsa_sha384_brainpoolP384r1_384: 256,
ecdsa_sha512_brainpoolP256r1_256: 256,
ecdsa_sha512_brainpoolP384r1_384: 256,
};
export const MAX_CERT_BYTES: Partial<Record<keyof typeof SignatureAlgorithmIndex, number>> = {
@@ -114,6 +116,7 @@ export enum SignatureAlgorithmIndex {
ecdsa_sha256_secp384r1_384 = 23,
ecdsa_sha384_brainpoolP256r1_256 = 24,
ecdsa_sha512_brainpoolP256r1_256 = 25,
ecdsa_sha512_brainpoolP384r1_384 = 26,
}
export const attributeToPosition = {

View File

@@ -1358,6 +1358,30 @@ bKeq3jWgsSb2o7VSgneDGG70Qw==
-----END CERTIFICATE-----
`;
export const mock_dsc_key_sha512_brainpoolP384r1 = `-----BEGIN EC PRIVATE KEY-----
MIGoAgEBBDB4JkHrXVXl2oWIH04Wh0ERPrGi+oW6Gm4Qs+QMlzMlZFz/pGn9BbFo
VwHIejJ8fuWgCwYJKyQDAwIIAQELoWQDYgAEgFY8mpSYBoiXECveGnKHO/9PW96k
WT80fBf3/tz8vytQGhLzqFS4kcxSsoO9lJXnfLk+PTqKyHGX8wPAqD9MvGcD8pj1
uvEviUV7Hp99wos7JXGGdm8koJhAvfGSt6N3
-----END EC PRIVATE KEY-----
`;
export const mock_dsc_sha512_brainpoolP384r1 = `-----BEGIN CERTIFICATE-----
MIICIDCCAaagAwIBAgIUUxZNjQROjb8L3QFE3qKEAOuGA/4wCgYIKoZIzj0EAwQw
RTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
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-----
`;
export const mock_dsc_key_sha256_rsa_65537_3072 = `-----BEGIN PRIVATE KEY-----
MIIG/AIBADANBgkqhkiG9w0BAQEFAASCBuYwggbiAgEAAoIBgQCxoTQRUOf0mU86
f71+4KF4MAU3EQ+XkTwdD8F4bKMhEOb0QpUtiQebkD5qyp04Ur/vRZWqpSJIwpvY

View File

@@ -42,6 +42,8 @@ import {
mock_dsc_sha384_brainpoolP256r1,
mock_dsc_key_sha512_brainpoolP256r1,
mock_dsc_sha512_brainpoolP256r1,
mock_dsc_key_sha512_brainpoolP384r1,
mock_dsc_sha512_brainpoolP384r1,
} from '../constants/mockCertificates';
import { sampleDataHashes_small, sampleDataHashes_large } from '../constants/sampleDataHashes';
import { countryCodes } from '../constants/constants';
@@ -192,6 +194,11 @@ export function genMockPassportData(
privateKeyPem = mock_dsc_key_sha384_brainpoolP384r1;
dsc = mock_dsc_sha384_brainpoolP384r1;
break;
case 'ecdsa_sha512_brainpoolP384r1_384':
sampleDataHashes = genSampleDataHashes('large', 64);
privateKeyPem = mock_dsc_key_sha512_brainpoolP384r1;
dsc = mock_dsc_sha512_brainpoolP384r1;
break;
}
const { hashFunction, hashLen } = parseCertificate(dsc);

View File

@@ -33,7 +33,8 @@ export type SignatureAlgorithm =
| 'rsa_sha512_65537_4096'
| 'rsapss_sha256_65537_3072'
| 'rsapss_sha256_65537_4096'
| 'ecdsa_sha384_brainpoolP384r1_384';
| 'ecdsa_sha384_brainpoolP384r1_384'
| 'ecdsa_sha512_brainpoolP384r1_384';
export type Proof = {
proof: {