Expand description
§OID Registry
This crate is a helper crate, containing a database of OID objects. These objects are intended for use when manipulating ASN.1 grammars and BER/DER encodings, for example.
This crate provides only a simple registry (similar to a HashMap
) by default. This object can
be used to get names and descriptions from OID.
This crate provides default lists of known OIDs, that can be selected using the build features. By default, the registry has no feature enabled, to avoid embedding a huge database in crates.
It also declares constants for most of these OIDs.
use oid_registry::OidRegistry;
let mut registry = OidRegistry::default()
.with_crypto() // only if the 'crypto' feature is enabled
;
let e = registry.get(&oid_registry::OID_PKCS1_SHA256WITHRSA);
if let Some(entry) = e {
// get sn: sha256WithRSAEncryption
println!("sn: {}", entry.sn());
// get description: SHA256 with RSA encryption
println!("description: {}", entry.description());
}
§Extending the registry
These provided lists are often incomplete, or may lack some specific OIDs. This is why the registry allows adding new entries after construction:
use asn1_rs::oid;
use oid_registry::{OidEntry, OidRegistry};
let mut registry = OidRegistry::default();
// entries can be added by creating an OidEntry object:
let entry = OidEntry::new("shortName", "description");
registry.insert(oid!(1.2.3.4), entry);
// when using static strings, a tuple can also be used directly for the entry:
registry.insert(oid!(1.2.3.5), ("shortName", "A description"));
§Versions and compatibility with asn1-rs
Versions of oid-registry
must be chosen specifically, to depend on a precise version of asn1-rs
.
The following table summarizes the matching versions:
oid-registry
0.7.x depends onasn1-rs
0.6.0oid-registry
0.6.x depends onasn1-rs
0.5.0oid-registry
0.5.x depends onasn1-rs
0.4.0
§Contributing OIDs
All OID values, constants, and features are derived from files in the assets
directory in the
build script (see build.rs
).
See load_file
for documentation of the file format.
Re-exports§
pub use asn1_rs;
Structs§
- Loaded
Entry - Temporary structure, created when reading a file containing OID declarations
- Oid
- Object ID (OID) representation which can be relative or non-relative.
- OidEntry
- An entry stored in the OID registry
- OidRegistry
- Registry of known OIDs
Constants§
- MS_CTL
- 1.3.6.1.4.1.311.10.1
- MS_
JURISDICTION_ COUNTRY - 1.3.6.1.4.1.311.60.2.1.3
- MS_
JURISDICTION_ LOCALITY - 1.3.6.1.4.1.311.60.2.1.1
- MS_
JURISDICTION_ STATE_ OR_ PROVINCE - 1.3.6.1.4.1.311.60.2.1.2
- OID_
CT_ LIST_ SCT - 1.3.6.1.4.1.11129.2.4.2
- OID_
DOMAIN_ COMPONENT - 0.9.2342.19200300.100.1.25
- OID_
EC_ P256 - 1.2.840.10045.3.1.7
- OID_
GOST_ R3410_ 2001 - 1.2.643.2.2.19
- OID_
HASH_ SHA1 - 1.3.14.3.2.26
- OID_
KDF_ SHA1_ SINGLE - 1.3.133.16.840.63.0.2
- OID_
KEY_ TYPE_ DSA - 1.2.840.10040.4.1
- OID_
KEY_ TYPE_ EC_ PUBLIC_ KEY - 1.2.840.10045.2.1
- OID_
KEY_ TYPE_ GOST_ R3410_ 2012_ 256 - 1.2.643.7.1.1.1.1
- OID_
KEY_ TYPE_ GOST_ R3410_ 2012_ 512 - 1.2.643.7.1.1.1.2
- OID_
MD5_ WITH_ RSA - 1.3.14.3.2.25
- OID_
NIST_ EC_ P384 - 1.3.132.0.34
- OID_
NIST_ EC_ P521 - 1.3.132.0.35
- OID_
NIST_ ENC_ AES256_ CBC - 2.16.840.1.101.3.4.1.42
- OID_
NIST_ HASH_ SHA256 - 2.16.840.1.101.3.4.2.1
- OID_
NIST_ HASH_ SHA384 - 2.16.840.1.101.3.4.2.2
- OID_
NIST_ HASH_ SHA512 - 2.16.840.1.101.3.4.2.3
- OID_
PKCS1_ MD2WITHRSAENC - 1.2.840.113549.1.1.2
- OID_
PKCS1_ MD4WITHRSAENC - 1.2.840.113549.1.1.3
- OID_
PKCS1_ MD5WITHRSAENC - 1.2.840.113549.1.1.4
- OID_
PKCS1_ RSAENCRYPTION - 1.2.840.113549.1.1.1
- OID_
PKCS1_ RSASSAPSS - 1.2.840.113549.1.1.10
- OID_
PKCS1_ SHA1WITHRSA - 1.2.840.113549.1.1.5
- OID_
PKCS1_ SHA224WITHRSA - 1.2.840.113549.1.1.14
- OID_
PKCS1_ SHA256WITHRSA - 1.2.840.113549.1.1.11
- OID_
PKCS1_ SHA384WITHRSA - 1.2.840.113549.1.1.12
- OID_
PKCS1_ SHA512WITHRSA - 1.2.840.113549.1.1.13
- OID_
PKCS7_ ID_ DATA - 1.2.840.113549.1.7.1
- OID_
PKCS7_ ID_ DIGESTED_ DATA - 1.2.840.113549.1.7.5
- OID_
PKCS7_ ID_ ENCRYPTED_ DATA - 1.2.840.113549.1.7.6
- OID_
PKCS7_ ID_ ENVELOPED_ DATA - 1.2.840.113549.1.7.3
- OID_
PKCS7_ ID_ SIGNED_ DATA - 1.2.840.113549.1.7.2
- OID_
PKCS7_ ID_ SIGNED_ ENVELOPED_ DATA - 1.2.840.113549.1.7.4
- OID_
PKCS9_ CHALLENGE_ PASSWORD - 1.2.840.113549.1.9.7
- OID_
PKCS9_ CONTENT_ TYPE - 1.2.840.113549.1.9.3
- OID_
PKCS9_ EMAIL_ ADDRESS - 1.2.840.113549.1.9.1
- OID_
PKCS9_ EXTENSION_ REQUEST - 1.2.840.113549.1.9.14
- OID_
PKCS9_ FRIENDLY_ NAME - 1.2.840.113549.1.9.20
- OID_
PKCS9_ ID_ MESSAGE_ DIGEST - 1.2.840.113549.1.9.4
- OID_
PKCS9_ SIGNING_ TIME - 1.2.840.113549.1.9.5
- OID_
PKCS9_ SMIME_ CAPABILITIES - 1.2.840.113549.1.9.15
- OID_
PKCS9_ UNSTRUCTURED_ NAME - 1.2.840.113549.1.9.2
- OID_
PKCS12 - 1.2.840.113549.1.12
- OID_
PKCS12_ PBEIDS - 1.2.840.113549.1.12.1
- OID_
PKCS12_ PBE_ SHA1_ 2K_ 3DES_ CBC - 1.2.840.113549.1.12.1.4
- OID_
PKCS12_ PBE_ SHA1_ 3K_ 3DES_ CBC - 1.2.840.113549.1.12.1.3
- OID_
PKCS12_ PBE_ SHA1_ 40RC4 - 1.2.840.113549.1.12.1.2
- OID_
PKCS12_ PBE_ SHA1_ 40RC2_ CBC - 1.2.840.113549.1.12.1.6
- OID_
PKCS12_ PBE_ SHA1_ 128R C4 - 1.2.840.113549.1.12.1.1
- OID_
PKCS12_ PBE_ SHA1_ 128R C2_ CBC - 1.2.840.113549.1.12.1.5
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ CA_ ISSUERS - 1.3.6.1.5.5.7.48.2
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ CA_ REPOSITORY - 1.3.6.1.5.5.7.48.5
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ CMC - 1.3.6.1.5.5.7.48.12
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ DVCS - 1.3.6.1.5.5.7.48.4
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ HTTP_ CERTS - 1.3.6.1.5.5.7.48.6
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ HTTP_ CRLS - 1.3.6.1.5.5.7.48.7
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ OCSP - 1.3.6.1.5.5.7.48.1
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ RPKI_ MANIFEST - 1.3.6.1.5.5.7.48.10
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ RPKI_ NOTIFY - 1.3.6.1.5.5.7.48.13
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ SIGNED_ OBJECT - 1.3.6.1.5.5.7.48.11
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ STIRTNLIST - 1.3.6.1.5.5.7.48.14
- OID_
PKIX_ ACCESS_ DESCRIPTOR_ TIMESTAMPING - 1.3.6.1.5.5.7.48.3
- OID_
PKIX_ AUTHORITY_ INFO_ ACCESS - 1.3.6.1.5.5.7.1.1
- OID_
PKIX_ SUBJECT_ INFO_ ACCESS - 1.3.6.1.5.5.7.1.11
- OID_
SHA1_ WITH_ RSA - 1.3.14.3.2.29
- OID_
SIG_ DSA_ WITH_ SHA1 - 1.2.840.10040.4.3
- OID_
SIG_ ECDSA_ WITH_ SHA224 - 1.2.840.10045.4.3.1
- OID_
SIG_ ECDSA_ WITH_ SHA256 - 1.2.840.10045.4.3.2
- OID_
SIG_ ECDSA_ WITH_ SHA384 - 1.2.840.10045.4.3.3
- OID_
SIG_ ECDSA_ WITH_ SHA512 - 1.2.840.10045.4.3.4
- OID_
SIG_ ED448 - 1.3.101.113
- OID_
SIG_ ED25519 - 1.3.101.112
- OID_
SIG_ GOST_ R3410_ 2012_ 256 - 1.2.643.7.1.1.3.2
- OID_
SIG_ GOST_ R3410_ 2012_ 512 - 1.2.643.7.1.1.3.3
- OID_
SIG_ GOST_ R3411_ 94_ WITH_ R3410_ 2001 - 1.2.643.2.2.3
- OID_
SIG_ RSA_ RIPE_ MD160 - 1.3.36.3.3.1.2
- OID_
USERID - 0.9.2342.19200300.100.1.1
- OID_
X500 - 2.5
- OID_
X509 - 2.5.4
- OID_
X509_ ALIASED_ ENTRY_ NAME - 2.5.4.1
- OID_
X509_ BUSINESS_ CATEGORY - 2.5.4.15
- OID_
X509_ COMMON_ NAME - 2.5.4.3
- OID_
X509_ COUNTRY_ NAME - 2.5.4.6
- OID_
X509_ DESCRIPTION - 2.5.4.13
- OID_
X509_ DN_ QUALIFIER - 2.5.4.46
- OID_
X509_ EXT_ AUTHORITY_ KEY_ IDENTIFIER - 2.5.29.35
- OID_
X509_ EXT_ BASE_ URL - 2.16.840.1.113730.1.2
- OID_
X509_ EXT_ BASIC_ CONSTRAINTS - 2.5.29.19
- OID_
X509_ EXT_ CA_ CERT_ URL - 2.16.840.1.113730.1.6
- OID_
X509_ EXT_ CA_ CRL_ URL - 2.16.840.1.113730.1.5
- OID_
X509_ EXT_ CA_ POLICY_ URL - 2.16.840.1.113730.1.8
- OID_
X509_ EXT_ CA_ REVOCATION_ URL - 2.16.840.1.113730.1.4
- OID_
X509_ EXT_ CERTIFICATE_ POLICIES - 2.5.29.32
- OID_
X509_ EXT_ CERT_ COMMENT - 2.16.840.1.113730.1.13
- OID_
X509_ EXT_ CERT_ TYPE - 2.16.840.1.113730.1.1
- OID_
X509_ EXT_ CRL_ DISTRIBUTION_ POINTS - 2.5.29.31
- OID_
X509_ EXT_ CRL_ NUMBER - 2.5.29.20
- OID_
X509_ EXT_ DELTA_ CRL_ INDICATOR - 2.5.29.27
- OID_
X509_ EXT_ ENTITY_ LOGO - 2.16.840.1.113730.1.10
- OID_
X509_ EXT_ EXTENDED_ KEY_ USAGE - 2.5.29.37
- OID_
X509_ EXT_ FRESHEST_ CRL - 2.5.29.46
- OID_
X509_ EXT_ HOLD_ INSTRUCTION_ CODE - 2.5.29.23
- OID_
X509_ EXT_ HOMEPAGE_ URL - 2.16.840.1.113730.1.9
- OID_
X509_ EXT_ INHIBITANT_ ANY_ POLICY Deprecated - X509v3 Inhibit Any-policy
- OID_
X509_ EXT_ INHIBIT_ ANY_ POLICY - 2.5.29.54
- OID_
X509_ EXT_ INVALIDITY_ DATE - 2.5.29.24
- OID_
X509_ EXT_ ISSUER - 2.5.29.29
- OID_
X509_ EXT_ ISSUER_ ALT_ NAME - 2.5.29.18
- OID_
X509_ EXT_ ISSUER_ DISTRIBUTION_ POINT - 2.5.29.28
- OID_
X509_ EXT_ KEY_ USAGE - 2.5.29.15
- OID_
X509_ EXT_ NAME_ CONSTRAINTS - 2.5.29.30
- OID_
X509_ EXT_ POLICY_ CONSTRAINTS - 2.5.29.36
- OID_
X509_ EXT_ POLICY_ MAPPINGS - 2.5.29.33
- OID_
X509_ EXT_ PRIVATE_ KEY_ USAGE_ PERIOD - 2.5.29.16
- OID_
X509_ EXT_ REASON_ CODE - 2.5.29.21
- OID_
X509_ EXT_ RENEWAL_ URL - 2.16.840.1.113730.1.7
- OID_
X509_ EXT_ REVOCATION_ URL - 2.16.840.1.113730.1.3
- OID_
X509_ EXT_ SSL_ SERVER_ NAME - 2.16.840.1.113730.1.12
- OID_
X509_ EXT_ SUBJECT_ ALT_ NAME - 2.5.29.17
- OID_
X509_ EXT_ SUBJECT_ KEY_ IDENTIFIER - 2.5.29.14
- OID_
X509_ EXT_ USER_ PICTURE - 2.16.840.1.113730.1.11
- OID_
X509_ GENERATION_ QUALIFIER - 2.5.4.44
- OID_
X509_ GIVEN_ NAME - 2.5.4.42
- OID_
X509_ INITIALS - 2.5.4.43
- OID_
X509_ KNOWLEDGE_ INFORMATION - 2.5.4.2
- OID_
X509_ LOCALITY_ NAME - 2.5.4.7
- OID_
X509_ NAME - 2.5.4.41
- OID_
X509_ OBJECT_ CLASS - 2.5.4.0
- OID_
X509_ OBSOLETE_ AUTHORITY_ KEY_ IDENTIFIER - 2.5.29.1
- OID_
X509_ OBSOLETE_ CERTIFICATE_ POLICIES - 2.5.29.3
- OID_
X509_ OBSOLETE_ ISSUER_ ALT_ NAME - 2.5.29.8
- OID_
X509_ OBSOLETE_ KEY_ ATTRIBUTES - 2.5.29.2
- OID_
X509_ OBSOLETE_ KEY_ USAGE - 2.5.29.4
- OID_
X509_ OBSOLETE_ POLICY_ MAPPING - 2.5.29.5
- OID_
X509_ OBSOLETE_ SUBJECT_ ALT_ NAME - 2.5.29.7
- OID_
X509_ OBSOLETE_ SUBTREES_ CONSTRAINT - 2.5.29.6
- OID_
X509_ ORGANIZATIONAL_ UNIT - 2.5.4.11
- OID_
X509_ ORGANIZATION_ NAME - 2.5.4.10
- OID_
X509_ POSTAL_ ADDRESS - 2.5.4.16
- OID_
X509_ POSTAL_ CODE - 2.5.4.17
- OID_
X509_ SEARCH_ GUIDE - 2.5.4.14
- OID_
X509_ SERIALNUMBER - 2.5.4.5
- OID_
X509_ STATE_ OR_ PROVINCE_ NAME - 2.5.4.8
- OID_
X509_ STREET_ ADDRESS - 2.5.4.9
- OID_
X509_ SURNAME - 2.5.4.4
- OID_
X509_ TITLE - 2.5.4.12
- OID_
X509_ UNIQUE_ IDENTIFIER - 2.5.4.45
- SPC_
INDIRECT_ DATA_ OBJID - 1.3.6.1.4.1.311.2.1.4
- SPC_
INDIVIDUAL_ SP_ KEY_ PURPOSE_ OBJID - 1.3.6.1.4.1.311.2.1.21
- SPC_
PE_ IMAGE_ DATA - 1.3.6.1.4.1.311.2.1.15
- SPC_
SP_ OPUS_ INFO_ OBJID - 1.3.6.1.4.1.311.2.1.12
- SPC_
STATEMENT_ TYPE_ OBJID - 1.3.6.1.4.1.311.2.1.11
Functions§
- format_
oid - Format a OID to a
String
, using the provided registry to get the short name if present. - generate_
file - Generate a file containing a
with_<feat>
method for OidRegistry - load_
file - Load a file to an OID description map
Type Aliases§
- Loaded
Map - Temporary structure, created when reading a file containing OID declarations