§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() ;
let e = registry.get(&oid_registry::OID_PKCS1_SHA256WITHRSA);
if let Some(entry) = e {
println!("sn: {}", entry.sn());
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();
let entry = OidEntry::new("shortName", "description");
registry.insert(oid!(1.2.3.4), 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 on asn1-rs
0.6.0
oid-registry
0.6.x depends on asn1-rs
0.5.0
oid-registry
0.5.x depends on asn1-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.
pub use asn1_rs;
- LoadedEntry
- Temporary structure, created when reading a file containing OID declarations
- Oid
- Object ID (OID) representation which can be relative or non-relative.
An example for an OID in string representation is
"1.2.840.113549.1.1.5"
. - OidEntry
- An entry stored in the OID registry
- OidRegistry
- Registry of known OIDs
- 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_128RC4
- 1.2.840.113549.1.12.1.1
- OID_PKCS12_PBE_SHA1_128RC2_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_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
- 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
- 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
- LoadedMap
- Temporary structure, created when reading a file containing OID declarations