-- ASN module extracted from ITU-T X.506 (07/2026)
CryptoTools {joint-iso-itu-t ds(5) module(1) cryptoTools(42) 10} DEFINITIONS IMPLICIT TAGS ::= BEGIN -- EXPORTS All IMPORTS SupportedAltAuthenEncryptAlgorithms, SupportedAltHashAlgorithms, SupportedAltIcvAlgorithms, SupportedAltKeyDerivationAlgos, SupportedAltKeyEstablishmentAlgos, SupportedAltPublicKeyAlgorithms, SupportedAltSignatureAlgorithms, SupportedAltSymmetricKeyAlgorithms, SupportedAuthenEncryptAlgorithms, SupportedHashAlgorithms, SupportedIcvAlgorithms, SupportedKeyDerivationAlgos, SupportedKeyEstablishmentAlgos, SupportedPublicKeyAlgorithms, SupportedSignatureAlgorithms, SupportedSymmetricKeyAlgorithms FROM SupportedInformationObjects {joint-iso-itu-t ds(5) module(1) supportedInformationObjects(49) 10} WITH SUCCESSORS AlgoInvoke{}, ALGORITHM, AlgorithmIdentifier{}, AlgorithmWithInvoke{} FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) authenticationFramework(7) 10} WITH SUCCESSORS id-algo-mca FROM GenAlgo {joint-iso-itu-t ds(5) module(1) genAlgo(48) 10} WITH SUCCESSORS ; -- Auxiliary data types Signed{ToBeSigned} ::= SEQUENCE { toBeSigned ToBeSigned, signature AlgorithmIdentifier{{multipleSignaturesAlgoInvoke}}, ... } ChoiceSigned{ToBeSigned} ::= SEQUENCE { toBeSigned ToBeSigned, signature AlgorithmIdentifier{{choiceSignatureAlgoInvoke}}, ...} SingleSigned{ToBeSigned} ::= SEQUENCE { toBeSigned ToBeSigned, signature AlgorithmWithInvoke{{SupportedSignatureAlgorithms}}, ... } ICV-Invoke{ToBeProtected} ::= SEQUENCE { toBeProtected ToBeProtected, icv AlgorithmWithInvoke{{SupportedIcvAlgorithms}}, ... } ENCIPHERED{ToBeEnciphered} ::= OCTET STRING (CONSTRAINED BY { -- shall be the result of applying an encipherment procedure -- to the BER-encoded octets of a value of -- ToBeEnciphered } ) -- Double cryptographic algorithms, no invoke multipleSignaturesAlgo ALGORITHM ::= { PARMS MultipleSignaturesAlgo IDENTIFIED BY {id-algo-mca 1} } MultipleSignaturesAlgo ::= SEQUENCE { native AlgorithmIdentifier{{SupportedSignatureAlgorithms}}, alt AlgorithmIdentifier{{SupportedAltSignatureAlgorithms}} OPTIONAL } multiplePublicKeyAlgo ALGORITHM ::= { PARMS MultiplePublicKeyAlgo IDENTIFIED BY {id-algo-mca 2} } MultiplePublicKeyAlgo ::= SEQUENCE { native AlgorithmIdentifier{{SupportedPublicKeyAlgorithms}}, alt AlgorithmIdentifier{{SupportedAltPublicKeyAlgorithms}} OPTIONAL } multipleHashAlgo ALGORITHM ::= { PARMS MultipleHashAlgo IDENTIFIED BY {id-algo-mca 3} } MultipleHashAlgo ::= SEQUENCE { native AlgorithmIdentifier{{SupportedHashAlgorithms}}, alt AlgorithmIdentifier{{SupportedAltHashAlgorithms}} OPTIONAL } multipleKeyEstablishmentAlgo ALGORITHM ::= { PARMS MultipleKeyEstablishmentAlgo IDENTIFIED BY {id-algo-mca 4} } MultipleKeyEstablishmentAlgo ::= SEQUENCE { native AlgorithmIdentifier{{SupportedKeyEstablishmentAlgos}}, alt AlgorithmIdentifier{{SupportedAltKeyEstablishmentAlgos}} OPTIONAL } multipleDataPhaseProtection ALGORITHM ::= { PARMS MultipleDataPhaseProtection IDENTIFIED BY {id-algo-mca 5} } MultipleDataPhaseProtection ::= SEQUENCE { native CHOICE { aead [0] AlgorithmIdentifier{ {SupportedAuthenEncryptAlgorithms}}, non-aead [1] SEQUENCE { encr [0] AlgorithmIdentifier{ {SupportedSymmetricKeyAlgorithms}} OPTIONAL, icv [1] AlgorithmIdentifier{ {SupportedIcvAlgorithms}}, ... }, ... }, alt CHOICE { aead [0] AlgorithmIdentifier{ {SupportedAuthenEncryptAlgorithms | SupportedAltAuthenEncryptAlgorithms}}, non-aead [1] SEQUENCE { encr [0] AlgorithmIdentifier{ {SupportedSymmetricKeyAlgorithms| SupportedAltSymmetricKeyAlgorithms}} OPTIONAL, icv [1] AlgorithmIdentifier{ {SupportedIcvAlgorithms | SupportedAltIcvAlgorithms}}, ... }, ... } OPTIONAL } -- Double choice algorithms, no invoke choiceSignatureAlgo ALGORITHM ::= { PARMS ChoiceSignatureAlgo IDENTIFIED BY {id-algo-mca 10} } ChoiceSignatureAlgo ::= CHOICE { native [0] AlgorithmIdentifier{{SupportedSignatureAlgorithms}}, alt [1] AlgorithmIdentifier{{SupportedAltSignatureAlgorithms}} } choicePublicKeyAlgo ALGORITHM ::= { PARMS ChoicePublicKeyAlgo IDENTIFIED BY {id-algo-mca 11} } ChoicePublicKeyAlgo ::= CHOICE { native [0] AlgorithmIdentifier{{SupportedPublicKeyAlgorithms}}, alt [1] AlgorithmIdentifier{{SupportedAltPublicKeyAlgorithms}} } choiceHashAlgo ALGORITHM ::= { PARMS ChoiceHashAlgo IDENTIFIED BY {id-algo-mca 12} } ChoiceHashAlgo ::= CHOICE { native [0] AlgorithmIdentifier{{SupportedHashAlgorithms}}, alt [1] AlgorithmIdentifier{{SupportedAltHashAlgorithms}} } choiceKeyEstablishmentAlgo ALGORITHM ::= { PARMS ChoiceKeyEstablishmentAlgo IDENTIFIED BY {id-algo-mca 13} } ChoiceKeyEstablishmentAlgo ::= CHOICE { native [0] AlgorithmIdentifier{{SupportedKeyEstablishmentAlgos}}, alt [1] AlgorithmIdentifier{{SupportedAltKeyEstablishmentAlgos}} } choiceDataPhaseProtection ALGORITHM ::= { PARMS ChoiceDataPhaseProtection IDENTIFIED BY {id-algo-mca 14} } ChoiceDataPhaseProtection ::= CHOICE { native [0] CHOICE { aead [0] AlgorithmIdentifier {{SupportedAuthenEncryptAlgorithms}}, non-aead [1] SEQUENCE { encr [0] AlgorithmIdentifier {{SupportedSymmetricKeyAlgorithms}} OPTIONAL, icv [1] AlgorithmIdentifier{{SupportedIcvAlgorithms}}, ... } }, alt [1] CHOICE { aead [0] AlgorithmIdentifier {{SupportedAuthenEncryptAlgorithms | SupportedAltAuthenEncryptAlgorithms}}, non-aead [1] SEQUENCE { encr [0] AlgorithmIdentifier {{SupportedSymmetricKeyAlgorithms | SupportedAltSymmetricKeyAlgorithms}} OPTIONAL, icv [1] AlgorithmIdentifier {{SupportedIcvAlgorithms | SupportedAltIcvAlgorithms}}, ... } } } -- Double cryptographic algorithms, invoke multipleSignaturesAlgoInvoke ALGORITHM ::= { PARMS MultipleSignaturesAlgoInvoke IDENTIFIED BY {id-algo-mca 20} } MultipleSignaturesAlgoInvoke ::= SEQUENCE { native AlgorithmWithInvoke{{SupportedSignatureAlgorithms}}, alt AlgorithmWithInvoke{{SupportedAltSignatureAlgorithms}} OPTIONAL } multiplePublicKeyAlgoInvoke ALGORITHM ::= { PARMS MultiplePublicKeyAlgoInvoke IDENTIFIED BY {id-algo-mca 21} } MultiplePublicKeyAlgoInvoke ::= SEQUENCE { native AlgorithmWithInvoke{{SupportedPublicKeyAlgorithms}}, alt AlgorithmWithInvoke{{SupportedAltPublicKeyAlgorithms}} OPTIONAL } multipleHashAlgoInvoke ALGORITHM ::= { PARMS MultipleHashAlgoInvoke IDENTIFIED BY {id-algo-mca 22} } MultipleHashAlgoInvoke ::= SEQUENCE { native AlgorithmWithInvoke{{SupportedHashAlgorithms}}, alt AlgorithmWithInvoke{{SupportedAltHashAlgorithms}} OPTIONAL } multipleKeyEstablishmentAlgoInvoke ALGORITHM ::= { PARMS MultipleKeyEstablishmentAlgoInvoke IDENTIFIED BY {id-algo-mca 23} } MultipleKeyEstablishmentAlgoInvoke ::= SEQUENCE { native AlgorithmWithInvoke{{SupportedKeyEstablishmentAlgos}}, alt AlgorithmWithInvoke{{SupportedAltKeyEstablishmentAlgos}} OPTIONAL } multipleKeyDerivationAlgoInvoke ALGORITHM ::= { PARMS MultipleKeyDerivationAlgoInvoke IDENTIFIED BY {id-algo-mca 24} } MultipleKeyDerivationAlgoInvoke ::= SEQUENCE { native AlgorithmWithInvoke{{SupportedKeyDerivationAlgos}}, alt AlgorithmWithInvoke{{SupportedAltKeyDerivationAlgos}} OPTIONAL } -- Double choice algorithms, invoke choiceSignatureAlgoInvoke ALGORITHM ::= { PARMS ChoiceSignatureAlgoInvoke IDENTIFIED BY {id-algo-mca 30} } ChoiceSignatureAlgoInvoke ::= CHOICE { native [0] AlgorithmWithInvoke{{SupportedSignatureAlgorithms}}, alt [1] AlgorithmWithInvoke{{SupportedAltSignatureAlgorithms}} } choicePublicKeyAlgoInvoke ALGORITHM ::= { PARMS ChoicePublicKeyAlgoInvoke IDENTIFIED BY {id-algo-mca 31} } ChoicePublicKeyAlgoInvoke ::= CHOICE { native [0] AlgorithmWithInvoke{{SupportedPublicKeyAlgorithms}}, alt [1] AlgorithmWithInvoke{{SupportedAltPublicKeyAlgorithms}} } choiceHashAlgoInvoke ALGORITHM ::= { PARMS ChoiceHashAlgoInvoke IDENTIFIED BY {id-algo-mca 32} } ChoiceHashAlgoInvoke ::= CHOICE { native [0] AlgorithmWithInvoke{{SupportedHashAlgorithms}}, alt [1] AlgorithmWithInvoke{{SupportedAltHashAlgorithms}} } choiceKeyEstablishmentAlgoInvoke ALGORITHM ::= { PARMS ChoiceKeyEstablishmentAlgoInvoke IDENTIFIED BY {id-algo-mca 33} } ChoiceKeyEstablishmentAlgoInvoke ::= CHOICE { native [0] AlgorithmWithInvoke{{SupportedKeyEstablishmentAlgos}}, alt [1] AlgorithmWithInvoke{{SupportedAltKeyEstablishmentAlgos}} } choiceKeyDerivationAlgoInvoke ALGORITHM ::= { PARMS ChoiceKeyDerivationAlgoInvoke IDENTIFIED BY {id-algo-mca 34} } ChoiceKeyDerivationAlgoInvoke ::= CHOICE { native [0] AlgorithmWithInvoke{{SupportedKeyDerivationAlgos}}, alt [1] AlgorithmWithInvoke{{SupportedAltKeyDerivationAlgos}} } END -- CryptoTools