Skip to content

Commit

Permalink
const-oid: add STB (Belarus standards) OIDs (#1394)
Browse files Browse the repository at this point in the history
  • Loading branch information
makavity committed May 19, 2024
1 parent cf96732 commit f90d131
Show file tree
Hide file tree
Showing 12 changed files with 946 additions and 0 deletions.
8 changes: 8 additions & 0 deletions const-oid/oiddbgen/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@ const MDS: &[(&str, &str)] = &[
("rfc8894", include_str!("../rfc8894.md")),
// Created from: https://trustedcomputinggroup.org
("tcgtpm", include_str!("../tcg-tpm.md")),
// Created from: https://github.com/bcrypto
("belt", include_str!("../stb/belt.asn")),
("bign", include_str!("../stb/bign.asn")),
("bpki", include_str!("../stb/bpki.asn")),
("btok", include_str!("../stb/btok.asn")),
("brng", include_str!("../stb/brng.asn")),
("bash", include_str!("../stb/bash.asn")),
("bake", include_str!("../stb/bake.asn"))
];

// Bases defined in other places.
Expand Down
15 changes: 15 additions & 0 deletions const-oid/oiddbgen/stb/bake.asn
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Bake-module-v1 {iso(1) member-body(2) by(112) 0 2 0 34 101 66 module(1) ver1(1)}
DEFINITIONS ::=
BEGIN
bake OBJECT IDENTIFIER ::= {iso(1) member-body(2) by(112) 0 2 0 34 101 66}

bake-bmqv OBJECT IDENTIFIER ::= {bake 11}
bake-bsts OBJECT IDENTIFIER ::= {bake 12}
bake-bpace OBJECT IDENTIFIER ::= {bake 21}
bake-dh OBJECT IDENTIFIER ::= {bake 31}
bake-kdf OBJECT IDENTIFIER ::= {bake 101}
bake-swu OBJECT IDENTIFIER ::= {bake 201}

bake-keys OBJECT IDENTIFIER ::= {bake keys(2)}
bake-pubkey OBJECT IDENTIFIER ::= {bake-keys 1}
END
34 changes: 34 additions & 0 deletions const-oid/oiddbgen/stb/bash.asn
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Bash-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 77 module(1) ver2(2)}
DEFINITIONS ::=
BEGIN
IMPORTS
bign
FROM Bign-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 45
module(1) ver2(2)};

bash OBJECT IDENTIFIER ::= {iso(1) member-body(2) by(112) 0 2 0 34 101 77}

bash256 OBJECT IDENTIFIER ::= {bash 11}
bash384 OBJECT IDENTIFIER ::= {bash 12}
bash512 OBJECT IDENTIFIER ::= {bash 13}
bash-prg-hash2561 OBJECT IDENTIFIER ::= {bash 21}
bash-prg-hash2562 OBJECT IDENTIFIER ::= {bash 22}
bash-prg-hash3841 OBJECT IDENTIFIER ::= {bash 23}
bash-prg-hash3842 OBJECT IDENTIFIER ::= {bash 24}
bash-prg-hash5121 OBJECT IDENTIFIER ::= {bash 25}
bash-prg-hash5122 OBJECT IDENTIFIER ::= {bash 26}
bash-prg-ae1281 OBJECT IDENTIFIER ::= {bash 31}
bash-prg-ae1282 OBJECT IDENTIFIER ::= {bash 32}
bash-prg-ae1921 OBJECT IDENTIFIER ::= {bash 33}
bash-prg-ae1922 OBJECT IDENTIFIER ::= {bash 34}
bash-prg-ae2561 OBJECT IDENTIFIER ::= {bash 35}
bash-prg-ae2562 OBJECT IDENTIFIER ::= {bash 36}
bash-f OBJECT IDENTIFIER ::= {bash 101}

bign-with-bash256 OBJECT IDENTIFIER ::= {bign 13}
bign-with-bash384 OBJECT IDENTIFIER ::= {bign 14}
bign-with-bash512 OBJECT IDENTIFIER ::= {bign 15}
bign-ibs-with-bash256 OBJECT IDENTIFIER ::= {bign 73}
bign-ibs-with-bash384 OBJECT IDENTIFIER ::= {bign 74}
bign-ibs-with-bash512 OBJECT IDENTIFIER ::= {bign 75}
END
53 changes: 53 additions & 0 deletions const-oid/oiddbgen/stb/belt.asn
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
Belt-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 31 module(1) ver2(2)}
DEFINITIONS ::=
BEGIN
belt OBJECT IDENTIFIER ::= {iso(1) member-body(2) by(112) 0 2 0 34 101 31}

belt-block128 OBJECT IDENTIFIER ::= {belt 3}
belt-block192 OBJECT IDENTIFIER ::= {belt 4}
belt-block256 OBJECT IDENTIFIER ::= {belt 5}
belt-wblock128 OBJECT IDENTIFIER ::= {belt 6}
belt-wblock192 OBJECT IDENTIFIER ::= {belt 7}
belt-wblock256 OBJECT IDENTIFIER ::= {belt 8}
belt-compress OBJECT IDENTIFIER ::= {belt 9}
belt-ecb128 OBJECT IDENTIFIER ::= {belt 11}
belt-ecb192 OBJECT IDENTIFIER ::= {belt 12}
belt-ecb256 OBJECT IDENTIFIER ::= {belt 13}
belt-cbc128 OBJECT IDENTIFIER ::= {belt 21}
belt-cbc192 OBJECT IDENTIFIER ::= {belt 22}
belt-cbc256 OBJECT IDENTIFIER ::= {belt 23}
belt-cfb128 OBJECT IDENTIFIER ::= {belt 31}
belt-cfb192 OBJECT IDENTIFIER ::= {belt 32}
belt-cfb256 OBJECT IDENTIFIER ::= {belt 33}
belt-ctr128 OBJECT IDENTIFIER ::= {belt 41}
belt-ctr192 OBJECT IDENTIFIER ::= {belt 42}
belt-ctr256 OBJECT IDENTIFIER ::= {belt 43}
belt-mac128 OBJECT IDENTIFIER ::= {belt 51}
belt-mac192 OBJECT IDENTIFIER ::= {belt 52}
belt-mac256 OBJECT IDENTIFIER ::= {belt 53}
belt-dwp128 OBJECT IDENTIFIER ::= {belt 61}
belt-dwp192 OBJECT IDENTIFIER ::= {belt 62}
belt-dwp256 OBJECT IDENTIFIER ::= {belt 63}
belt-che128 OBJECT IDENTIFIER ::= {belt 64}
belt-che192 OBJECT IDENTIFIER ::= {belt 65}
belt-che256 OBJECT IDENTIFIER ::= {belt 66}
belt-kwp128 OBJECT IDENTIFIER ::= {belt 71}
belt-kwp192 OBJECT IDENTIFIER ::= {belt 72}
belt-kwp256 OBJECT IDENTIFIER ::= {belt 73}
belt-hash OBJECT IDENTIFIER ::= {belt 81}
belt-keyexpand OBJECT IDENTIFIER ::= {belt 91}
belt-keyrep OBJECT IDENTIFIER ::= {belt 101}
belt-bde128 OBJECT IDENTIFIER ::= {belt 111}
belt-bde192 OBJECT IDENTIFIER ::= {belt 112}
belt-bde256 OBJECT IDENTIFIER ::= {belt 113}
belt-sde128 OBJECT IDENTIFIER ::= {belt 121}
belt-sde192 OBJECT IDENTIFIER ::= {belt 122}
belt-sde256 OBJECT IDENTIFIER ::= {belt 123}
belt-fmt128 OBJECT IDENTIFIER ::= {belt 131}
belt-fmt192 OBJECT IDENTIFIER ::= {belt 132}
belt-fmt256 OBJECT IDENTIFIER ::= {belt 133}

IV ::= OCTET STRING (SIZE(16))
KeyHeader ::= OCTET STRING (SIZE(16))
KeyLevel ::= OCTET STRING (SIZE(12))
END
69 changes: 69 additions & 0 deletions const-oid/oiddbgen/stb/bign.asn
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
Bign-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 45 module(1) ver2(2)}
DEFINITIONS ::=
BEGIN
bign OBJECT IDENTIFIER ::= {iso(1) member-body(2) by(112) 0 2 0 34 101 45}

bign-with-hspec OBJECT IDENTIFIER ::= {bign 11}
bign-with-hbelt OBJECT IDENTIFIER ::= {bign 12}
bign-genec OBJECT IDENTIFIER ::= {bign 21}
bign-valec OBJECT IDENTIFIER ::= {bign 22}
bign-genkeypair OBJECT IDENTIFIER ::= {bign 31}
bign-valpubkey OBJECT IDENTIFIER ::= {bign 32}
bign-keytransport OBJECT IDENTIFIER ::= {bign 41}
bign-genk OBJECT IDENTIFIER ::= {bign 61}
bign-ibs-with-hspec OBJECT IDENTIFIER ::= {bign 71}
bign-ibs-with-hbelt OBJECT IDENTIFIER ::= {bign 72}

bign-keys OBJECT IDENTIFIER ::= {bign keys(2)}
bign-pubkey OBJECT IDENTIFIER ::= {bign-keys 1}

bign-curves OBJECT IDENTIFIER ::= {bign curves(3)}
bign-curve256v1 OBJECT IDENTIFIER ::= {bign-curves 1}
bign-curve384v1 OBJECT IDENTIFIER ::= {bign-curves 2}
bign-curve512v1 OBJECT IDENTIFIER ::= {bign-curves 3}

bign-fields OBJECT IDENTIFIER ::= {bign fields(4)}
bign-primefield OBJECT IDENTIFIER ::= {bign-fields prime(1)}

AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}

DomainParameters ::= CHOICE {
specified ECParameters,
named OBJECT IDENTIFIER,
implicit NULL
}

ECParameters ::= SEQUENCE {
version INTEGER {ecpVer1(1)} (ecpVer1),
fieldID FieldID,
curve Curve,
base OCTET STRING (SIZE(32|48|64)),
order INTEGER,
cofactor INTEGER (1) OPTIONAL
}

FieldID ::= SEQUENCE {
fieldType OBJECT IDENTIFIER (bign-primefield),
parameters INTEGER
}

Curve ::= SEQUENCE {
a OCTET STRING (SIZE(32|48|64)),
b OCTET STRING (SIZE(32|48|64)),
seed BIT STRING (SIZE(64))
}

PublicKey ::= BIT STRING (SIZE(512|768|1024))

SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey PublicKey
}

Signature ::= BIT STRING (SIZE(384|576|768))
SignatureValue ::= OCTET STRING (SIZE(48|72|96))
IdSignatureValue ::= OCTET STRING (SIZE(112|168|224))
END
129 changes: 129 additions & 0 deletions const-oid/oiddbgen/stb/bpki.asn
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
Bpki-module-v1 {iso(1) member-body(2) by(112) 0 2 0 34 101 78 module(1) ver1(1)}
DEFINITIONS ::=
BEGIN
IMPORTS
CRLReason, Name
FROM PKIX1Explicit88 {iso(1) identified-organization(3)
dod(6) internet(1) security(5) mechanisms(5) pkix(7)
id-mod(0) id-pkix1-explicit-88(1)}
PKIStatusInfo
FROM PKIXTSP {iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-tsp(13)}
belt-keywrap256
FROM Belt-module-v1 {iso(1) member-body(2) by(112) 0 2 0 34 101 31 1 1}
bign-pubkey, bign-curve256v1, bign-curve384v1, bign-curve512v1
FROM Bign-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 45 1 2}
hmac-hbelt
FROM Brng-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 47 1 2}
bels-share, bels-m0128v1, bels-m0192v1, bels-m0256v1
FROM Bels-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 60 1 2}
id-PBKDF2, id-PBES2
FROM PKCS5v2-1 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
pkcs-5(5) modules(16) pkcs5v2-1(2)};

bpki OBJECT IDENTIFIER ::= {iso(1) member-body(2) by(112) 0 2 0 34 101 78}

bpki-role OBJECT IDENTIFIER ::= {bpki 2}
bpki-role-ca0 OBJECT IDENTIFIER ::= {bpki-role 0}
bpki-role-ca1 OBJECT IDENTIFIER ::= {bpki-role 1}
bpki-role-ca2 OBJECT IDENTIFIER ::= {bpki-role 2}
bpki-role-aa OBJECT IDENTIFIER ::= {bpki-role 10}
bpki-role-ra OBJECT IDENTIFIER ::= {bpki-role 20}
bpki-role-ocsp OBJECT IDENTIFIER ::= {bpki-role 30}
bpki-role-tsa OBJECT IDENTIFIER ::= {bpki-role 31}
bpki-role-dvcs OBJECT IDENTIFIER ::= {bpki-role 32}
bpki-role-ids OBJECT IDENTIFIER ::= {bpki-role 33}
bpki-role-tls OBJECT IDENTIFIER ::= {bpki-role 50}
-- natural persons
bpki-role-np OBJECT IDENTIFIER ::= {bpki-role 60}
-- foreign natural persons
bpki-role-fnp OBJECT IDENTIFIER ::= {bpki-role 61}
-- legal representatives
bpki-role-lr OBJECT IDENTIFIER ::= {bpki-role 62}
-- autonomous cryptographic devices
bpki-role-acd OBJECT IDENTIFIER ::= {bpki-role 70}

-- extended key usage
bpki-eku OBJECT IDENTIFIER ::= {bpki 3}
-- server of Terminal Mode
bpki-eku-serverTM OBJECT IDENTIFIER ::= {bpki-eku 1}
-- client of Terminal Mode
bpki-eku-clientTM OBJECT IDENTIFIER ::= {bpki-eku 2}

-- attributes
bpki-at OBJECT IDENTIFIER ::= {bpki 4}
-- certificate validity period
bpki-at-certificateValidity OBJECT IDENTIFIER ::= {bpki-at 1}

-- content types
bpki-ct OBJECT IDENTIFIER ::= {bpki 5}
bpki-ct-enroll1-req OBJECT IDENTIFIER ::= {bpki-ct 1}
bpki-ct-enroll2-req OBJECT IDENTIFIER ::= {bpki-ct 2}
bpki-ct-reenroll-req OBJECT IDENTIFIER ::= {bpki-ct 3}
bpki-ct-spawn-req OBJECT IDENTIFIER ::= {bpki-ct 4}
bpki-ct-setpwd-req OBJECT IDENTIFIER ::= {bpki-ct 5}
bpki-ct-revoke-req OBJECT IDENTIFIER ::= {bpki-ct 6}
bpki-ct-resp OBJECT IDENTIFIER ::= {bpki-ct 7}

BPKIRevokeReq ::= SEQUENCE {
issuer Name,
serialNumber INTEGER,
revokePwd UTF8String,
reasonCode CRLReason,
invalidityDate GeneralizedTime OPTIONAL,
comment UTF8String OPTIONAL }

BPKIResp ::= SEQUENCE {
statusInfo PKIStatusInfo,
requestId OCTET STRING(SIZE(32)),
nonce OCTET STRING(SIZE(8)) OPTIONAL }

BPKIRetrieveReq ::= SEQUENCE {
requestId OCTET STRING(SIZE(32)),
nonce OCTET STRING(SIZE(8)) }

PrivateKeyInfo ::= SEQUENCE {
version INTEGER(0),
keyAlgorithm CHOICE {
bignPrivkeyAlgorithm BignAlgorithmIdentifier,
belsSharekeyAlgorithm BelsAlgorithmIdentifier },
key OCTET STRING }

BignAlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER(bign-pubkey),
params OBJECT IDENTIFIER(bign-curve256v1 | bign-curve384v1 |
bign-curve512v1) }

BelsAlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER(bels-share),
params OBJECT IDENTIFIER(bels-m0128v1 | bels-m0192v1 | bels-m0256v1) }

EncryptedPrivateKeyInfo ::= SEQUENCE {
encryptionAlgorithm EncryptionAlgorithmIdentifier,
encryptedData OCTET STRING }

EncryptionAlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER(id-PBES2),
params PBES2-params }

PBES2-params ::= SEQUENCE {
keyDerivationFunc PBKDF2AlgorithmIdentifier,
encryptionScheme BeltKeywrapAlgorithmIdentifier }

PBKDF2AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER(id-PBKDF2),
params PBKDF2-params }

BeltKeywrapAlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER(belt-keywrap256),
params NULL }

PBKDF2-params ::= SEQUENCE {
salt OCTET STRING(SIZE(8)),
iterationCount INTEGER (10000..MAX),
prf PrfAlgorithmIdentifier }

PrfAlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER(hmac-hbelt),
params NULL }
END
20 changes: 20 additions & 0 deletions const-oid/oiddbgen/stb/brng.asn
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Brng-module-v2 {iso(1) member-body(2) by(112) 0 2 0 34 101 47 module(1) ver2(2)}
DEFINITIONS ::=
BEGIN
brng OBJECT IDENTIFIER ::= {1 2 112 0 2 0 34 101 47}

hmac-hspec OBJECT IDENTIFIER ::= {brng 11}
hmac-hbelt OBJECT IDENTIFIER ::= {brng 12}
brng-ctr-hspec OBJECT IDENTIFIER ::= {brng 21}
brng-ctr-hbelt OBJECT IDENTIFIER ::= {brng 22}
brng-ctr-stb11761 OBJECT IDENTIFIER ::= {brng 23}
brng-hmac-hspec OBJECT IDENTIFIER ::= {brng 31}
brng-hmac-hbelt OBJECT IDENTIFIER ::= {brng 32}

hotp-hspec OBJECT IDENTIFIER ::= {brng 111}
hotp-hbelt OBJECT IDENTIFIER ::= {brng 112}
totp-hspec OBJECT IDENTIFIER ::= {brng 121}
totp-hbelt OBJECT IDENTIFIER ::= {brng 122}
ocra-hspec OBJECT IDENTIFIER ::= {brng 131}
ocra-hbelt OBJECT IDENTIFIER ::= {brng 132}
END

0 comments on commit f90d131

Please sign in to comment.