Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add STB (Belarus standarts) to const-oid #1394

Merged
merged 3 commits into from
May 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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