feat: support sha384 brainpool256r1

This commit is contained in:
ayman
2024-12-28 14:27:49 +05:30
parent a133cb4235
commit b71b6113ce
11 changed files with 80 additions and 25 deletions

View File

@@ -41,6 +41,7 @@ export const MAX_PADDED_ECONTENT_LEN: Partial<
rsa_sha256_65537_3072: 384,
rsa_sha256_3_2048: 384,
ecdsa_sha256_brainpoolP256r1_256: 384,
ecdsa_sha384_brainpoolP256r1_256: 512,
ecdsa_sha384_brainpoolP384r1_384: 512,
};
@@ -62,6 +63,7 @@ export const MAX_PADDED_SIGNED_ATTR_LEN: Partial<
rsa_sha256_65537_3072: 192,
rsa_sha256_3_2048: 192,
ecdsa_sha256_brainpoolP256r1_256: 192,
ecdsa_sha384_brainpoolP256r1_256: 256,
ecdsa_sha384_brainpoolP384r1_384: 256,
};
@@ -108,6 +110,7 @@ export enum SignatureAlgorithmIndex {
ecdsa_sha256_brainpoolP256r1_256 = 21,
ecdsa_sha384_brainpoolP384r1_384 = 22,
ecdsa_sha256_secp384r1_384 = 23,
ecdsa_sha384_brainpoolP256r1_256 = 24,
}
export const attributeToPosition = {

View File

@@ -1266,6 +1266,28 @@ Tvkpy9dRVAEaF2QmoiMtCHKnAiAe9FkZw6iO8h4GWKyeiAsvnk/tiRcLwkOQoLNc
-----END CERTIFICATE-----
`;
export const mock_dsc_key_sha384_brainpoolP256r1 = `-----BEGIN EC PRIVATE KEY-----
MHgCAQEEIIhHbA4GKMOiNXQcXTiFlQUX2YFKz5U/Ya+vQa/YFo6foAsGCSskAwMC
CAEBB6FEA0IABKje0Lfu0ACxcGqEJc2vF6AYckbw9LaoHIKRyM6ko91AFuNhEIsx
pUF1FV+lornr3u0I7bOxL4PlOD+nZuRXGQE=
-----END EC PRIVATE KEY-----
`;
export const mock_dsc_sha384_brainpoolP256r1 = `-----BEGIN CERTIFICATE-----
MIIB3zCCAYagAwIBAgIUNxoAJFWOPOCE9KOmtQZpg4NiEzMwCgYIKoZIzj0EAwMw
RTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDEyMjgwNjE0MTZaFw0yNTEyMjgw
NjE0MTZaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwWjAUBgcqhkjOPQIBBgkrJAMD
AggBAQcDQgAEqN7Qt+7QALFwaoQlza8XoBhyRvD0tqgcgpHIzqSj3UAW42EQizGl
QXUVX6Wiueve7Qjts7Evg+U4P6dm5FcZAaNTMFEwHQYDVR0OBBYEFHB+vSzRl9Vy
UedDOcm9V+sbVYlLMB8GA1UdIwQYMBaAFHB+vSzRl9VyUedDOcm9V+sbVYlLMA8G
A1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDRwAwRAIgFv62dVvKdRlqCcRfQdax
iSfNPb3k7L2E0ETWSZ0KLvICIC8csz7X6VOTuVspKl1YXlBM6hOx7gTVdaGKmTR2
WtFT
-----END CERTIFICATE-----
`;
export const mock_dsc_key_sha256_secp384r1 = `-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDBZthN5/vhpqE/ALHj35A/pMkfSDRxFKKweTYs2IxR0eW6RJQlZhdgk
TGP7rQ4EKF6gBwYFK4EEACKhZANiAASsl16vufqKa/qdJWIEDO5no2useouKh4Zk

View File

@@ -38,6 +38,8 @@ import {
mock_dsc_sha384_brainpoolP384r1,
mock_dsc_key_sha256_secp384r1,
mock_dsc_sha256_secp384r1,
mock_dsc_key_sha384_brainpoolP256r1,
mock_dsc_sha384_brainpoolP256r1,
} from '../constants/mockCertificates';
import { sampleDataHashes_small, sampleDataHashes_large } from '../constants/sampleDataHashes';
import { countryCodes } from '../constants/constants';
@@ -153,6 +155,11 @@ export function genMockPassportData(
privateKeyPem = mock_dsc_key_sha256_brainpoolP256r1;
dsc = mock_dsc_sha256_brainpoolP256r1;
break;
case 'ecdsa_sha384_brainpoolP256r1_256':
sampleDataHashes = genSampleDataHashes('large', 48);
privateKeyPem = mock_dsc_key_sha384_brainpoolP256r1;
dsc = mock_dsc_sha384_brainpoolP256r1;
break;
case 'rsa_sha256_3_2048':
sampleDataHashes = genSampleDataHashes('large', 32);
privateKeyPem = mock_dsc_key_sha256_rsa_3_2048;
@@ -182,7 +189,7 @@ export function genMockPassportData(
const { hashFunction, hashLen } = parseCertificate(dsc);
console.log('hashFUnction', hashFunction);
console.log('hashFunction', hashFunction);
const mrzHash = hash(hashFunction, formatMrz(mrz));
const concatenatedDataHashes = formatAndConcatenateDataHashes(

View File

@@ -25,6 +25,7 @@ export type SignatureAlgorithm =
| 'ecdsa_sha384_secp384r1_384'
| 'ecdsa_sha256_secp384r1_384'
| 'ecdsa_sha256_brainpoolP256r1_256'
| 'ecdsa_sha384_brainpoolP256r1_256'
| 'rsa_sha256_3_2048'
| 'rsa_sha256_65537_3072'
| 'rsa_sha256_65537_4096'