-- ASN module extracted from ITU-T X.510 (10/2023)
GenAlgo {joint-iso-itu-t ds(5) module(1) genAlgo(48) 10}
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
-- EXPORTS All
IMPORTS
ALGORITHM
FROM
PKI-Stub {joint-iso-itu-t ds(5) module(1) pki-stub(999) 10} WITH SUCCESSORS ;
-- The following object identifier is allocated by Rec. ITU-T X.501 | ISO/IEC 9594-2
id-algo OBJECT IDENTIFIER ::= {joint-iso-itu-t ds(5) algo(44)}
id-algo-mca OBJECT IDENTIFIER ::= {id-algo mca(1) } -- multiple-crypto algorithms
id-algo-ska OBJECT IDENTIFIER ::= {id-algo ska(2) } -- symmetric-key algorithms
id-algo-pka OBJECT IDENTIFIER ::= {id-algo pka(3) } -- public-key algorithms
id-algo-ha OBJECT IDENTIFIER ::= {id-algo ha(4) } -- hash algorithms
id-algo-dsa OBJECT IDENTIFIER ::= {id-algo dsa(5) } -- digital dignature algorithms
id-algo-kem OBJECT IDENTIFIER ::= {id-algo kem(6) } -- key establishment algorithms
-- =============================== AES ALGORITHMS =====================================
-- AES-ECB algorithms
aes-ecb128 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb128(1)} }
aes-ecb192 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb192(2)} }
aes-ecb256 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb256(3)} }
-- AES-CBC algorithms
aes-cbc128 ALGORITHM ::= {
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska cbc128(5)} }
aes-cbc192 ALGORITHM ::= {
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska cbc192(6)} }
aes-cbc256 ALGORITHM ::= {
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska cbc256(7)} }
AES-InitializationVector ::= OCTET STRING (SIZE (16))
-- AES-OFB algorithms
aes-ofb128 ALGORITHM ::= {
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska ofb128(9)} }
aes-ofb192 ALGORITHM ::= {
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska ofb192(10)} }
aes-ofb256 ALGORITHM ::= {
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska ofb256(11)} }
-- AES-CFB algorithms
aes-cfb128 ALGORITHM ::= {
PARMS NumberOfBits
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska cfb128(13)} }
aes-cfb192 ALGORITHM ::= {
PARMS NumberOfBits
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska cfb192(14)} }
aes-cfb256 ALGORITHM ::= {
PARMS NumberOfBits
DYN-PARMS AES-InitializationVector
IDENTIFIED BY {id-algo-ska cfb256(15)} }
NumberOfBits ::= INTEGER(1..128)
-- AES-CTR algorithms
aes-ctr128 ALGORITHM ::= {
DYN-PARMS CtrNonce
IDENTIFIED BY {id-algo-ska ctr128(17)} }
aes-ctr192 ALGORITHM ::= {
DYN-PARMS CtrNonce
IDENTIFIED BY {id-algo-ska ctr192(18)} }
aes-ctr256 ALGORITHM ::= {
DYN-PARMS CtrNonce
IDENTIFIED BY {id-algo-ska ctr256(19)} }
CtrNonce ::= OCTET STRING (SIZE (8))
-- AES-GCM algorithms
aes-128gcm ALGORITHM ::= {
PARMS GCM-ICVlen
DYN-PARMS GCM-nonce
IDENTIFIED BY {id-algo-ska gcm128(21)} }
aes-192gcm ALGORITHM ::= {
PARMS GCM-ICVlen
DYN-PARMS GCM-nonce
IDENTIFIED BY {id-algo-ska gcm192(22)} }
aes-256gcm ALGORITHM ::= {
PARMS GCM-ICVlen
DYN-PARMS GCM-nonce
IDENTIFIED BY {id-algo-ska gcm256(23)} }
GCM-ICVlen ::= INTEGER (16)
GCM-nonce ::= OCTET STRING (SIZE (12))
-- AES-SIV algorithms
aes-128gcm-siv ALGORITHM ::= {
PARMS GCM-SIV-ICVlen
DYN-PARMS GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm128-siv(25)} }
aes-192gcm-siv ALGORITHM ::= {
PARMS GCM-SIV-ICVlen
DYN-PARMS GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm192-siv(26)} }
aes-256gcm-siv ALGORITHM ::= {
PARMS GCM-SIV-ICVlen
DYN-PARMS GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm256-siv(27)} }
GCM-SIV-ICVlen ::= INTEGER (16)
GCM-SIV-nonce ::= OCTET STRING (SIZE (12))
-- AES-CCM algorithms
aes-128ccm ALGORITHM ::= {
PARMS CCM-ICVlen
DYN-PARMS CCM-nonce
IDENTIFIED BY {id-algo-ska ccm128(29)} }
aes-192ccm ALGORITHM ::= {
PARMS CCM-ICVlen
DYN-PARMS CCM-nonce
IDENTIFIED BY {id-algo-ska ccm192(30)} }
aes-256ccm ALGORITHM ::= {
PARMS CCM-ICVlen
DYN-PARMS CCM-nonce
IDENTIFIED BY {id-algo-ska ccm256(31)} }
CCM-ICVlen ::= INTEGER (16)
CCM-nonce ::= OCTET STRING (SIZE (12))
-- AES-GMAC algorithms
aes-128gmac ALGORITHM ::= {
PARMS MACLength
DYN-PARMS GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac128(33)} }
aes-192gmac ALGORITHM ::= {
PARMS MACLength
DYN-PARMS GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac192(34)} }
aes-256gmac ALGORITHM ::= {
PARMS MACLength
DYN-PARMS GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac256(35)} }
MACLength ::= INTEGER (12 | 13 | 14 | 15 | 16)
GMAC-nonce ::= OCTET STRING (SIZE (12))
-- AES-CMAC algorithms
aes-128cmac ALGORITHM ::= {
PARMS CMACLength
IDENTIFIED BY {id-algo-ska cmac128(37)} }
aes-192cmac ALGORITHM ::= {
PARMS CMACLength
IDENTIFIED BY {id-algo-ska cmac192(38)} }
aes-256cmac ALGORITHM ::= {
PARMS CMACLength
IDENTIFIED BY {id-algo-ska cmac256(39)} }
CMACLength ::= INTEGER
-- ============================ CAMMELLIA ALGORITHMS ==================================
-- CAM-ECB algorithms
cam-ecb128 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb128(1) cam(2)} }
cam-ecb192 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb192(2) cam(2)} }
cam-ecb256 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb256(3) cam(2)} }
-- CAM-CBC algorithms
cam-cbc128 ALGORITHM ::= {
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska cbc128(5) cam(2)} }
cam-cbc192 ALGORITHM ::= {
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska cbc192(6) cam(2)} }
cam-cbc256 ALGORITHM ::= {
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska cbc256(7) cam(2)} }
CAM-InitializationVector ::= OCTET STRING (SIZE (16))
-- CAM-OFB algorithms
cam-ofb128 ALGORITHM ::= {
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska ofb128(9) cam(2)} }
cam-ofb192 ALGORITHM ::= {
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska ofb192(10) cam(2)} }
cam-ofb256 ALGORITHM ::= {
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska ofb256(11) cam(2)} }
-- CAM-CFB algorithms
cam-cfb128 ALGORITHM ::= {
PARMS CamNumberOfBits
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska cfb128(13) cam(2)} }
cam-cfb192 ALGORITHM ::= {
PARMS CamNumberOfBits
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska cfb192(14) cam(2)} }
cam-cfb256 ALGORITHM ::= {
PARMS CamNumberOfBits
DYN-PARMS CAM-InitializationVector
IDENTIFIED BY {id-algo-ska cfb256(15) cam(2)} }
CamNumberOfBits ::= INTEGER(1..128)
-- CAM-CTR algorithms
cam-ctr128 ALGORITHM ::= {
DYN-PARMS CAM-CtrNonce
IDENTIFIED BY {id-algo-ska ctr128(17) cam(2)} }
cam-ctr192 ALGORITHM ::= {
DYN-PARMS CAM-CtrNonce
IDENTIFIED BY {id-algo-ska ctr192(18) cam(2)} }
cam-ctr256 ALGORITHM ::= {
DYN-PARMS CAM-CtrNonce
IDENTIFIED BY {id-algo-ska ctr256(19) cam(2)} }
CAM-CtrNonce ::= OCTET STRING (SIZE (8))
-- CAM-GCM algorithms
cam-128gcm ALGORITHM ::= {
PARMS CAM-GCM-ICVlen
DYN-PARMS CAM-GCM-nonce
IDENTIFIED BY {id-algo-ska gcm128(21) cam(2)} }
cam-192gcm ALGORITHM ::= {
PARMS CAM-GCM-ICVlen
DYN-PARMS CAM-GCM-nonce
IDENTIFIED BY {id-algo-ska gcm192(22) cam(2)} }
cam-256gcm ALGORITHM ::= {
PARMS CAM-GCM-ICVlen
DYN-PARMS CAM-GCM-nonce
IDENTIFIED BY {id-algo-ska gcm256(23) cam(2)} }
CAM-GCM-ICVlen ::= INTEGER (16)
CAM-GCM-nonce ::= OCTET STRING (SIZE (12))
-- CAM-SIV algorithms
cam-128gcm-siv ALGORITHM ::= {
PARMS CAM-GCM-SIV-ICVlen
DYN-PARMS CAM-GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm128-siv(25) cam(2)} }
cam-192gcm-siv ALGORITHM ::= {
PARMS CAM-GCM-SIV-ICVlen
DYN-PARMS CAM-GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm192-siv(26) cam(2)} }
cam-256gcm-siv ALGORITHM ::= {
PARMS CAM-GCM-SIV-ICVlen
DYN-PARMS CAM-GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm256-siv(27) cam(2)} }
CAM-GCM-SIV-ICVlen ::= INTEGER (16)
CAM-GCM-SIV-nonce ::= OCTET STRING (SIZE (12))
-- CAM-CCM algorithms
cam-128ccm ALGORITHM ::= {
PARMS CAM-CCM-ICVlen
DYN-PARMS CAM-CCM-nonce
IDENTIFIED BY {id-algo-ska ccm128(29) cam(2)} }
cam-192ccm ALGORITHM ::= {
PARMS CAM-CCM-ICVlen
DYN-PARMS CAM-CCM-nonce
IDENTIFIED BY {id-algo-ska ccm192(30) cam(2)} }
cam-256ccm ALGORITHM ::= {
PARMS CAM-CCM-ICVlen
DYN-PARMS CAM-CCM-nonce
IDENTIFIED BY {id-algo-ska ccm256(31) cam(2)} }
CAM-CCM-ICVlen ::= INTEGER (16)
CAM-CCM-nonce ::= OCTET STRING (SIZE (12))
-- CAM-GMAC algorithms
cam-128gmac ALGORITHM ::= {
PARMS CAM-MACLength
DYN-PARMS CAM-GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac128(33) cam(2)} }
cam-192gmac ALGORITHM ::= {
PARMS CAM-MACLength
DYN-PARMS CAM-GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac192(34) cam(2)} }
cam-256gmac ALGORITHM ::= {
PARMS CAM-MACLength
DYN-PARMS CAM-GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac256(35) cam(2)} }
CAM-MACLength ::= INTEGER (12 | 13 | 14 | 15 | 16)
CAM-GMAC-nonce ::= OCTET STRING (SIZE (12))
-- CAM-CMAC algorithms
cam-128cmac ALGORITHM ::= {
PARMS CAM-CMACLength
IDENTIFIED BY {id-algo-ska cmac128(37) cam(2)} }
cam-192cmac ALGORITHM ::= {
PARMS CAM-CMACLength
IDENTIFIED BY {id-algo-ska cmac192(38) cam(2)} }
cam-256cmac ALGORITHM ::= {
PARMS CAM-CMACLength
IDENTIFIED BY {id-algo-ska cmac256(39)cam(2) } }
CAM-CMACLength ::= INTEGER
-- ============================== SEED ALGORITHMS =====================================
-- SEED-ECB algorithm
seed-ecb128 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb128(1) seed(3)} }
-- SEED-CBC algorithm
seed-cbc128 ALGORITHM ::= {
DYN-PARMS SEED-InitializationVector
IDENTIFIED BY {id-algo-ska cbc128(5) seed(3)} }
SEED-InitializationVector ::= OCTET STRING (SIZE (16))
-- SEED-OFB algorithm
seed-ofb128 ALGORITHM ::= {
DYN-PARMS SEED-InitializationVector
IDENTIFIED BY {id-algo-ska ofb128(9) seed(3)} }
-- SEED-CFB algorithm
seed-cfb128 ALGORITHM ::= {
PARMS SEED-NumberOfBits
DYN-PARMS SEED-InitializationVector
IDENTIFIED BY {id-algo-ska cfb128(13) seed(3)} }
SEED-NumberOfBits ::= INTEGER(1..128)
-- SEED-CTR algorithm
seed-ctr128 ALGORITHM ::= {
DYN-PARMS SEED-CtrNonce
IDENTIFIED BY {id-algo-ska ctr128(17) seed(3)} }
SEED-CtrNonce ::= OCTET STRING (SIZE (8))
-- SEED-GCM algorithm
seed-128gcm ALGORITHM ::= {
PARMS SEED-GCM-ICVlen
DYN-PARMS SEED-GCM-nonce
IDENTIFIED BY {id-algo-ska gcm128(21) seed(3)} }
SEED-GCM-ICVlen ::= INTEGER (16)
SEED-GCM-nonce ::= OCTET STRING (SIZE (12))
-- SEED-SIV algorithm
seed-128gcm-siv ALGORITHM ::= {
PARMS SEED-GCM-SIV-ICVlen
DYN-PARMS SEED-GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm128-siv(25) seed(3)} }
SEED-GCM-SIV-ICVlen ::= INTEGER (16)
SEED-GCM-SIV-nonce ::= OCTET STRING (SIZE (12))
-- SEED-CCM algorithm
seed-128ccm ALGORITHM ::= {
PARMS SEED-CCM-ICVlen
DYN-PARMS SEED-CCM-nonce
IDENTIFIED BY {id-algo-ska ccm128(29) seed(3)} }
SEED-CCM-ICVlen ::= INTEGER (16)
SEED-CCM-nonce ::= OCTET STRING (SIZE (12))
-- SEED-GMAC algorithm
seed-128gmac ALGORITHM ::= {
PARMS SEED-MACLength
DYN-PARMS SEED-GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac128(33) seed(3)} }
SEED-MACLength ::= INTEGER (12 | 13 | 14 | 15 | 16)
SEED-GMAC-nonce ::= OCTET STRING (SIZE (12))
-- SEED-CMAC algorithm
seed-128cmac ALGORITHM ::= {
PARMS SEED-CMACLength
IDENTIFIED BY {id-algo-ska cmac128(37) seed(3)} }
SEED-CMACLength ::= INTEGER
-- =============================== SM4 ALGORITHMS =====================================
-- SM4-ECB algorithm
sm4-ecb128 ALGORITHM ::= {
IDENTIFIED BY {id-algo-ska ecb128(1) sm4(4)} }
-- SM4-CBC algorithm
sm4-cbc128 ALGORITHM ::= {
DYN-PARMS SM4-InitializationVector
IDENTIFIED BY {id-algo-ska cbc128(5) sm4(4)} }
SM4-InitializationVector ::= OCTET STRING (SIZE (16))
-- SM4-OFB algorithm
sm4-ofb128 ALGORITHM ::= {
DYN-PARMS SM4-InitializationVector
IDENTIFIED BY {id-algo-ska ofb128(9) sm4(4)} }
-- SM4-CFB algorithm
sm4-cfb128 ALGORITHM ::= {
PARMS SM4-NumberOfBits
DYN-PARMS SM4-InitializationVector
IDENTIFIED BY {id-algo-ska cfb128(13) sm4(4)} }
SM4-NumberOfBits ::= INTEGER(1..128)
-- SM4-CTR algorithm
sm4-ctr128 ALGORITHM ::= {
DYN-PARMS SM4-CtrNonce
IDENTIFIED BY {id-algo-ska ctr128(17) sm4(4)} }
SM4-CtrNonce ::= OCTET STRING (SIZE (8))
-- SM4-GCM algorithm
sm4-128gcm ALGORITHM ::= {
PARMS SM4-GCM-ICVlen
DYN-PARMS SM4-GCM-nonce
IDENTIFIED BY {id-algo-ska gcm128(21) sm4(4)} }
SM4-GCM-ICVlen ::= INTEGER (16)
SM4-GCM-nonce ::= OCTET STRING (SIZE (12))
-- SM4-SIV algorithm
sm4-128gcm-siv ALGORITHM ::= {
PARMS SM4-GCM-SIV-ICVlen
DYN-PARMS SM4-GCM-SIV-nonce
IDENTIFIED BY {id-algo-ska gcm128-siv(25) sm4(4)} }
SM4-GCM-SIV-ICVlen ::= INTEGER (16)
SM4-GCM-SIV-nonce ::= OCTET STRING (SIZE (12))
-- SM4-CCM algorithm
sm4-128ccm ALGORITHM ::= {
PARMS SM4-CCM-ICVlen
DYN-PARMS SM4-CCM-nonce
IDENTIFIED BY {id-algo-ska ccm128(29) sm4(4)} }
SM4-CCM-ICVlen ::= INTEGER (16)
SM4-CCM-nonce ::= OCTET STRING (SIZE (12))
-- SM4-GMAC algorithm
sm4-128gmac ALGORITHM ::= {
PARMS SM4-MACLength
DYN-PARMS SM4-GMAC-nonce
IDENTIFIED BY {id-algo-ska gmac128(33) sm4(4)} }
SM4-MACLength ::= INTEGER (12 | 13 | 14 | 15 | 16)
SM4-GMAC-nonce ::= OCTET STRING (SIZE (12))
-- SM4-CMAC algorithm
sm4-128cmac ALGORITHM ::= {
PARMS SM4-CMACLength
IDENTIFIED BY {id-algo-ska cmac128(37) sm4(4)} }
SM4-CMACLength ::= INTEGER
-- Key establishment algorithms
dhModpGr14Hkdf256Algo ALGORITHM ::= {
PARMS Group14
DYN-PARMS Payload14
IDENTIFIED BY id-algo-dhModpGr14Hkdf256Algo }
Group14 ::= INTEGER (14)
Payload14 ::= SEQUENCE {
dhPublicKey OCTET STRING (SIZE (256)),
nonce OCTET STRING (SIZE (32)),
... }
dhModpGr15Hkdf384Algo ALGORITHM ::= {
PARMS Group15
DYN-PARMS Payload15
IDENTIFIED BY id-algo-dhModpGr15Hkdf384Algo }
Group15 ::= INTEGER (15)
Payload15 ::= SEQUENCE {
dhPublicKey OCTET STRING (SIZE (384)),
nonce OCTET STRING (SIZE (32)),
... }
dhModpGr16Hkdf512Algo ALGORITHM ::= {
PARMS Group16
DYN-PARMS Payload16
IDENTIFIED BY id-algo-dhModpGr16Hkdf512Algo }
Group16 ::= INTEGER (16)
Payload16 ::= SEQUENCE {
dhPublicKey OCTET STRING (SIZE (512)),
nonce OCTET STRING (SIZE (32)),
... }
dhModpGr17Hkdf768Algo ALGORITHM ::= {
PARMS Group17
DYN-PARMS Payload17
IDENTIFIED BY id-algo-dhModpGr17Hkdf768Algo }
Group17 ::= INTEGER (17)
Payload17 ::= SEQUENCE {
dhPublicKey OCTET STRING (SIZE (768)),
nonce OCTET STRING (SIZE (32)),
... }
dhModpGr18Hkdf1024Algo ALGORITHM ::= {
PARMS Group18
DYN-PARMS Payload18
IDENTIFIED BY id-algo-dhModpGr18Hkdf1024Algo }
Group18 ::= INTEGER (18)
Payload18 ::= SEQUENCE {
dhPublicKey OCTET STRING (SIZE (1024)),
nonce OCTET STRING (SIZE (32)),
... }
dhModpGr23Hkdf256Algo ALGORITHM ::= {
PARMS Group23
DYN-PARMS Payload23
IDENTIFIED BY id-algo-dhModpGr23Hkdf256Algo }
Group23 ::= INTEGER (23)
Payload23 ::= SEQUENCE {
dhPublicKey OCTET STRING (SIZE (512)),
nonce OCTET STRING (SIZE (32)),
... }
dhModpGr28Hkdf256Algo ALGORITHM ::= {
PARMS Group28
DYN-PARMS Payload28
IDENTIFIED BY id-algo-dhModpGr28Hkdf256Algo }
Group28 ::= INTEGER (28)
Payload28 ::= SEQUENCE {
dhPublicKey OCTET STRING (SIZE (512)),
nonce OCTET STRING (SIZE (32)),
... }
-- Object identifier allocation
id-algo-dhModpGr14Hkdf256Algo OBJECT IDENTIFIER ::= {id-algo-kem 1}
id-algo-dhModpGr15Hkdf384Algo OBJECT IDENTIFIER ::= {id-algo-kem 2}
id-algo-dhModpGr16Hkdf512Algo OBJECT IDENTIFIER ::= {id-algo-kem 3}
id-algo-dhModpGr17Hkdf768Algo OBJECT IDENTIFIER ::= {id-algo-kem 4}
id-algo-dhModpGr18Hkdf1024Algo OBJECT IDENTIFIER ::= {id-algo-kem 5}
id-algo-dhModpGr23Hkdf256Algo OBJECT IDENTIFIER ::= {id-algo-kem 10}
id-algo-dhModpGr28Hkdf256Algo OBJECT IDENTIFIER ::= {id-algo-kem 15}
END -- GenAlgo