Skip to content

Acceptance Tests

Ce document présente le plan exhaustif des tests d’acceptance. Ces tests valident les workflows complets via la CLI (boîte noire).

MétriqueValeur
Suites de tests8
Tests total133
Priorité P1 (bloquants)110
Priorité P223
Fichierstest/acceptance/*.go
Build tag//go:build acceptance
Terminal window
# Tous les tests d'acceptance
make test-acceptance
# Une suite spécifique
go test -tags=acceptance ./test/acceptance/... -run TestA_CMS
# Un test individuel
go test -tags=acceptance ./test/acceptance/... -run TestA_CMS_Sign_EC -v

FonctionnalitéECRSAML-DSASLH-DSACatalystComposite
CA InitTC-A-CA-001TC-A-CA-002TC-A-CA-003TC-A-CA-004TC-A-CA-005TC-A-CA-006
Key GenTC-A-KEY-001TC-A-KEY-002TC-A-KEY-003TC-A-KEY-004--
CSRTC-A-CSR-001TC-A-CSR-002----
CredentialTC-A-CRED-001TC-A-CRED-002TC-A-CRED-003TC-A-CRED-004TC-A-CRED-005TC-A-CRED-006
CMS SignTC-A-CMS-001TC-A-CMS-002TC-A-CMS-003TC-A-CMS-004TC-A-CMS-005TC-A-CMS-006
CMS EncryptTC-A-CMS-008TC-A-CMS-007TC-A-CMS-009--TC-A-CMS-010
TSATC-A-TSA-001TC-A-TSA-002TC-A-TSA-003TC-A-TSA-004TC-A-TSA-005TC-A-TSA-006
OCSPTC-A-OCSP-001-TC-A-OCSP-002TC-A-OCSP-003TC-A-OCSP-004TC-A-OCSP-005
COSE Sign1TC-A-COSE-001TC-A-COSE-002TC-A-COSE-004TC-A-COSE-006TC-A-COSE-008SKIP
COSE CWTTC-A-COSE-003-TC-A-COSE-005TC-A-COSE-007TC-A-COSE-010SKIP
E2E WorkflowTC-A-E2E-001-TC-A-E2E-002-TC-A-E2E-003TC-A-E2E-004

46 tests - Workflows PKI fondamentaux

TC-IDNomPrioritéDescription
TC-A-KEY-001TestA_Key_Gen_EC_AlgorithmsP1Génère clés EC (P-256, P-384, P-521)
TC-A-KEY-002TestA_Key_Gen_RSA_AlgorithmsP1Génère clés RSA (2048, 3072, 4096)
TC-A-KEY-003TestA_Key_Gen_MLDSA_AlgorithmsP1Génère clés ML-DSA (44, 65, 87)
TC-A-KEY-004TestA_Key_Gen_SLHDSA_AlgorithmsP1Génère clés SLH-DSA (128f, 192f, 256f)
TC-A-KEY-005TestA_Key_InfoP2Affiche info clé
TC-A-KEY-006TestA_Key_ListP2Liste les clés
TC-IDNomPrioritéDescription
TC-A-CA-001TestA_CA_Init_ECP1CA racine ECDSA
TC-A-CA-002TestA_CA_Init_RSAP1CA racine RSA
TC-A-CA-003TestA_CA_Init_MLDSAP1CA racine ML-DSA
TC-A-CA-004TestA_CA_Init_SLHDSAP1CA racine SLH-DSA
TC-A-CA-005TestA_CA_Init_CatalystP1CA hybride Catalyst (EC + ML-DSA)
TC-A-CA-006TestA_CA_Init_CompositeP1CA hybride Composite
TC-A-CA-007TestA_CA_Init_SubordinateP1CA subordonnée
TC-A-CA-008TestA_CA_InfoP2Affiche info CA
TC-IDNomPrioritéDescription
TC-A-CSR-001TestA_CSR_Gen_ECP1CSR ECDSA
TC-A-CSR-002TestA_CSR_Gen_RSAP1CSR RSA
TC-A-CSR-003TestA_CSR_Gen_MLKEM_WithAttestationP1CSR ML-KEM avec PoP (RFC 9883)
TC-IDNomPrioritéDescription
TC-A-CERT-001TestA_Cert_Issue_EC_FromCSRP1Émet certificat EC depuis CSR
TC-A-CERT-002TestA_Cert_Issue_RSA_FromCSRP1Émet certificat RSA depuis CSR
TC-A-CERT-003TestA_Cert_VerifyP1Vérifie chaîne de certificats
TC-A-CERT-004TestA_Cert_ListP2Liste certificats émis
TC-A-CERT-005TestA_Cert_InspectP2Inspecte certificat
TC-IDNomPrioritéDescription
TC-A-CRED-001TestA_Credential_Enroll_EC_ProfilesP1Enrollment profils EC (tls-server, tls-client, signing, etc.)
TC-A-CRED-002TestA_Credential_Enroll_RSA_ProfilesP1Enrollment profils RSA
TC-A-CRED-003TestA_Credential_Enroll_MLDSA_ProfilesP1Enrollment profils ML-DSA
TC-A-CRED-004TestA_Credential_Enroll_SLHDSA_ProfilesP1Enrollment profils SLH-DSA
TC-A-CRED-005TestA_Credential_Enroll_Catalyst_ProfilesP1Enrollment profils Catalyst
TC-A-CRED-006TestA_Credential_Enroll_Composite_ProfilesP1Enrollment profils Composite
TC-IDNomPrioritéDescription
TC-A-CRL-001TestA_CRL_GenerateP1Génère CRL
TC-A-CRL-002TestA_CRL_Revoke_And_GenerateP1Révoque certificat et génère CRL
TC-A-CRL-003TestA_CRL_PQC_AlgorithmsP1CRL avec algorithmes PQC
TC-IDNomPrioritéDescription
TC-A-PROFILE-001TestA_Profile_ListP2Liste profils disponibles
TC-A-PROFILE-002TestA_Profile_ShowP2Affiche contenu profil
TC-IDNomPrioritéDescription
TC-A-INSPECT-001TestA_Inspect_CertificateP2Inspecte certificat (détails X.509)
TC-A-INSPECT-002TestA_Inspect_PQC_CertificateP1Inspecte certificat PQC
TC-A-INSPECT-003TestA_Inspect_CRLP2Inspecte CRL
TC-A-INSPECT-004TestA_Inspect_CSRP2Inspecte CSR
TC-IDNomPrioritéDescription
TC-A-E2E-001TestA_E2E_EC_WorkflowP1Workflow complet EC : CA → Cert → CRL → Verify
TC-A-E2E-002TestA_E2E_MLDSA_WorkflowP1Workflow complet ML-DSA
TC-A-E2E-003TestA_E2E_Catalyst_WorkflowP1Workflow complet Catalyst
TC-A-E2E-004TestA_E2E_Composite_WorkflowP1Workflow complet Composite
TC-A-E2E-005TestA_E2E_SubordinateCA_ChainP1Chaîne Root CA → Sub CA → Cert
TC-IDNomPrioritéDescription
TC-A-CLI-001TestA_CLI_HelpP2qpki --help
TC-A-CLI-002TestA_CLI_VersionP2qpki --version

17 tests - Transitions et rotations d’algorithmes

TC-IDNomPrioritéDescription
TC-A-AGILITY-001TestA_Agility_EC_Catalyst_PQP1EC → Catalyst → ML-DSA
TC-A-AGILITY-002TestA_Agility_EC_Composite_PQP1EC → Composite → ML-DSA
TC-A-AGILITY-003TestA_Agility_RSA_EC_PQP1RSA → EC → ML-DSA
TC-A-AGILITY-004TestA_Agility_EC_PQ_DirectP1EC → ML-DSA (direct)
TC-A-AGILITY-005TestA_Agility_Catalyst_PQP1Catalyst → ML-DSA
TC-A-AGILITY-006TestA_Agility_Composite_PQP1Composite → ML-DSA
TC-A-AGILITY-007TestA_Agility_EC_SLHDSAP1EC → SLH-DSA
TC-A-AGILITY-008TestA_Agility_Full_PKI_TransitionP1Transition complète PKI
TC-IDNomPrioritéDescription
TC-A-AGILITY-009TestA_Agility_Rotate_EC_Catalyst_MLDSAP1Rotation EC → Catalyst → ML-DSA
TC-A-AGILITY-010TestA_Agility_Rotate_EC_Composite_MLDSAP1Rotation EC → Composite → ML-DSA
TC-A-AGILITY-011TestA_Agility_Rotate_RSA_EC_MLDSAP1Rotation RSA → EC → ML-DSA
TC-A-AGILITY-012TestA_Agility_Rotate_EC_MLDSA_DirectP1Rotation EC → ML-DSA (direct)
TC-A-AGILITY-013TestA_Agility_Rotate_Catalyst_MLDSAP1Rotation Catalyst → ML-DSA
TC-A-AGILITY-014TestA_Agility_Rotate_Composite_MLDSAP1Rotation Composite → ML-DSA
TC-A-AGILITY-015TestA_Agility_Rotate_CA_VersionsP1Gestion versions CA
TC-A-AGILITY-016TestA_Agility_Rotate_Credential_VersionsP1Gestion versions credential
TC-A-AGILITY-017TestA_Agility_Rotate_CA_InfoP1Info CA après rotation

11 tests - Signatures et chiffrement CMS

TC-IDNomPrioritéAlgorithme
TC-A-CMS-001TestA_CMS_Sign_ECP1ECDSA
TC-A-CMS-002TestA_CMS_Sign_RSAP1RSA
TC-A-CMS-003TestA_CMS_Sign_MLDSAP1ML-DSA
TC-A-CMS-004TestA_CMS_Sign_SLHDSAP1SLH-DSA
TC-A-CMS-005TestA_CMS_Sign_CatalystP1Catalyst
TC-A-CMS-006TestA_CMS_Sign_CompositeP1Composite
TC-IDNomPrioritéMécanisme
TC-A-CMS-007TestA_CMS_Encrypt_RSAP1RSA-OAEP
TC-A-CMS-008TestA_CMS_Encrypt_ECP1ECDH
TC-A-CMS-009TestA_CMS_Encrypt_MLKEMP1ML-KEM
TC-A-CMS-010TestA_CMS_Encrypt_HybridP1Hybrid (ECDH + ML-KEM)
TC-A-CMS-011TestA_CMS_Verify_InvalidDataP2Erreur sur données invalides

13 tests - Intégration HSM via PKCS#11

Prérequis : SoftHSM2 installé et token initialisé

TC-IDNomPrioritéDescription
TC-A-HSM-001TestA_HSM_List_TokensP1Liste tokens disponibles
TC-A-HSM-002TestA_HSM_Test_ConnectionP1Test connexion HSM
TC-A-HSM-003TestA_HSM_InfoP2Info token
TC-IDNomPrioritéDescription
TC-A-HSM-004TestA_HSM_Key_Gen_ECP1Génère clé EC dans HSM
TC-A-HSM-005TestA_HSM_Key_Gen_RSAP1Génère clé RSA dans HSM
TC-A-HSM-006TestA_HSM_Key_ListP2Liste clés dans HSM
TC-IDNomPrioritéDescription
TC-A-HSM-007TestA_HSM_CA_Init_WithExistingKeyP1Init CA avec clé existante
TC-A-HSM-008TestA_HSM_CA_Init_GenerateKeyP1Init CA avec génération clé
TC-A-HSM-009TestA_HSM_CA_Init_RSAP1Init CA RSA dans HSM
TC-A-HSM-010TestA_HSM_CA_InfoP2Info CA HSM
TC-IDNomPrioritéDescription
TC-A-HSM-011TestA_HSM_Credential_Enroll_SoftwareKeyP1CA HSM, clé logicielle
TC-A-HSM-012TestA_HSM_Credential_Enroll_HSMKeyP1CA HSM, clé HSM
TC-A-HSM-013TestA_HSM_Credential_ListP2Liste credentials HSM

8 tests - Horodatage RFC 3161

TC-IDNomPrioritéAlgorithme
TC-A-TSA-001TestA_TSA_Sign_ECP1ECDSA
TC-A-TSA-002TestA_TSA_Sign_RSAP1RSA
TC-A-TSA-003TestA_TSA_Sign_MLDSAP1ML-DSA
TC-A-TSA-004TestA_TSA_Sign_SLHDSAP1SLH-DSA
TC-A-TSA-005TestA_TSA_Sign_CatalystP1Catalyst
TC-A-TSA-006TestA_TSA_Sign_CompositeP1Composite
TC-A-TSA-007TestA_TSA_Verify_InvalidDataP2Erreur sur données invalides
TC-A-TSA-008TestA_TSA_InfoP2Info timestamp

7 tests - Statut certificat RFC 6960

TC-IDNomPrioritéAlgorithme
TC-A-OCSP-001TestA_OCSP_Sign_ECP1ECDSA
TC-A-OCSP-002TestA_OCSP_Sign_MLDSAP1ML-DSA
TC-A-OCSP-003TestA_OCSP_Sign_SLHDSAP1SLH-DSA
TC-A-OCSP-004TestA_OCSP_Sign_CatalystP1Catalyst
TC-A-OCSP-005TestA_OCSP_Sign_CompositeP1Composite
TC-A-OCSP-006TestA_OCSP_Status_RevokedP1Statut révoqué
TC-A-OCSP-007TestA_OCSP_ServerP1Serveur OCSP HTTP

28 tests - Signatures COSE/CWT (RFC 9052/8392)

Note: Les tests Composite sont SKIP car COSE ne supporte pas les algorithmes composites directement. Utiliser le mode Catalyst (2 signatures séparées) pour l’hybride.

TC-IDNomPrioritéAlgorithme
TC-A-COSE-001TestA_COSE_Sign1_ECP1ECDSA
TC-A-COSE-002TestA_COSE_Sign1_RSAP1RSA-PSS
TC-A-COSE-003TestA_COSE_CWT_ECP1CWT ECDSA
TC-IDNomPrioritéAlgorithme
TC-A-COSE-004TestA_COSE_Sign1_MLDSAP1ML-DSA-65
TC-A-COSE-005TestA_COSE_CWT_MLDSAP1CWT ML-DSA-65
TC-IDNomPrioritéAlgorithme
TC-A-COSE-006TestA_COSE_Sign1_SLHDSAP1SLH-DSA-SHA2-128f
TC-A-COSE-007TestA_COSE_CWT_SLHDSAP1CWT SLH-DSA-SHA2-128f
TC-IDNomPrioritéMode
TC-A-COSE-008TestA_COSE_Sign_CatalystP1Catalyst (2 signatures)
TC-A-COSE-009TestA_COSE_Sign_CompositeSKIPComposite (non supporté)
TC-A-COSE-010TestA_COSE_CWT_CatalystP1CWT Catalyst
TC-A-COSE-011TestA_COSE_CWT_CompositeSKIPCWT Composite (non supporté)
TC-IDNomPrioritéDescription
TC-A-COSE-012TestA_COSE_HSM_Sign1_ECP1Sign1 EC via HSM
TC-A-COSE-013TestA_COSE_HSM_Sign1_MLDSAP1Sign1 ML-DSA via HSM (UTIMACO)
TC-A-COSE-014TestA_COSE_HSM_HybridP1Hybride via HSM (UTIMACO)
TC-IDNomPrioritéDescription
TC-A-COSE-015TestA_COSE_Verify_OKP1Vérification valide
TC-A-COSE-016TestA_COSE_Verify_EmbeddedPayloadP1Vérification payload embarqué
TC-A-COSE-017TestA_COSE_Verify_CertChainP1Vérification chaîne CA
TC-A-COSE-018TestA_COSE_Verify_InvalidSignatureP1Signature invalide rejetée
TC-A-COSE-019TestA_COSE_CWT_ExpirationP1Validation expiration
TC-A-COSE-020TestA_COSE_Verify_WrongCAP2Mauvais CA rejeté
TC-A-COSE-021TestA_COSE_Sign_MissingKeyP2Erreur clé manquante
TC-IDNomPrioritéDescription
TC-A-COSE-022TestA_COSE_Info_Sign1P2Info Sign1
TC-A-COSE-023TestA_COSE_Info_CWTP2Info CWT
TC-A-COSE-024TestA_COSE_Info_HybridP2Info hybride
TC-IDNomPrioritéDescription
TC-A-COSE-025TestA_COSE_Agility_EC_To_MLDSAP1Rotation EC -> ML-DSA
TC-A-COSE-026TestA_COSE_Agility_EC_Catalyst_PQP1PKIs parallèles
TC-A-COSE-027TestA_COSE_Agility_VerifyOldTokenAfterRotationP1Anciens CWT valides
TC-A-COSE-028TestA_COSE_Agility_HybridTransitionP1Transition hybride
TC-A-COSE-029TestA_COSE_Agility_MultipleIssuersP2Multi-émetteurs

.github/workflows/ci.yml
jobs:
acceptance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run acceptance tests
run: make test-acceptance
Job CITestsDurée
pki-testTC-A-PKI-*~10 min
cms-testTC-A-CMS-*~5 min
tsa-testTC-A-TSA-*~3 min
ocsp-testTC-A-OCSP-*~3 min
cose-testTC-A-COSE-*~5 min
hsm-testTC-A-HSM-*~5 min
cryptoagility-testTC-A-AGILITY-*~8 min