2N/A/*
2N/A * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
2N/A * Use is subject to license terms.
2N/A */
2N/A/*
2N/A * Copyright(c) 1995-2000 Intel Corporation. All rights reserved.
2N/A */
2N/A
2N/A#include <kmfapi.h>
2N/A
2N/A/* From X.520 */
2N/Astatic uint8_t
2N/AOID_ObjectClass[] = { OID_ATTR_TYPE, 0 },
2N/AOID_AliasedEntryName[] = { OID_ATTR_TYPE, 1 },
2N/AOID_KnowledgeInformation[] = { OID_ATTR_TYPE, 2 },
2N/AOID_CommonName[] = { OID_ATTR_TYPE, 3 },
2N/AOID_Surname[] = { OID_ATTR_TYPE, 4 },
2N/AOID_SerialNumber[] = { OID_ATTR_TYPE, 5 },
2N/AOID_CountryName[] = { OID_ATTR_TYPE, 6 },
2N/AOID_LocalityName[] = { OID_ATTR_TYPE, 7 },
2N/AOID_StateProvinceName[] = { OID_ATTR_TYPE, 8 },
2N/AOID_CollectiveStateProvinceName[] = { OID_ATTR_TYPE, 8, 1 },
2N/AOID_StreetAddress[] = { OID_ATTR_TYPE, 9 },
2N/AOID_CollectiveStreetAddress[] = { OID_ATTR_TYPE, 9, 1 },
2N/AOID_OrganizationName[] = { OID_ATTR_TYPE, 10 },
2N/AOID_CollectiveOrganizationName[] = { OID_ATTR_TYPE, 10, 1 },
2N/AOID_OrganizationalUnitName[] = { OID_ATTR_TYPE, 11 },
2N/AOID_CollectiveOrganizationalUnitName[] = { OID_ATTR_TYPE, 11, 1 },
2N/AOID_Title[] = { OID_ATTR_TYPE, 12 },
2N/AOID_Description[] = { OID_ATTR_TYPE, 13 },
2N/AOID_SearchGuide[] = { OID_ATTR_TYPE, 14 },
2N/AOID_BusinessCategory[] = { OID_ATTR_TYPE, 15 },
2N/AOID_PostalAddress[] = { OID_ATTR_TYPE, 16 },
2N/AOID_CollectivePostalAddress[] = { OID_ATTR_TYPE, 16, 1 },
2N/AOID_PostalCode[] = { OID_ATTR_TYPE, 17 },
2N/AOID_CollectivePostalCode[] = { OID_ATTR_TYPE, 17, 1 },
2N/AOID_PostOfficeBox[] = { OID_ATTR_TYPE, 18 },
2N/AOID_CollectivePostOfficeBox[] = { OID_ATTR_TYPE, 18, 1 },
2N/AOID_PhysicalDeliveryOfficeName[] = { OID_ATTR_TYPE, 19 },
2N/AOID_CollectivePhysicalDeliveryOfficeName[] = { OID_ATTR_TYPE, 19, 1 },
2N/AOID_TelephoneNumber[] = { OID_ATTR_TYPE, 20 },
2N/AOID_CollectiveTelephoneNumber[] = { OID_ATTR_TYPE, 20, 1 },
2N/AOID_TelexNumber[] = { OID_ATTR_TYPE, 21 },
2N/AOID_CollectiveTelexNumber[] = { OID_ATTR_TYPE, 21, 1 },
2N/AOID_TelexTerminalIdentifier[] = { OID_ATTR_TYPE, 22 },
2N/AOID_CollectiveTelexTerminalIdentifier[] = { OID_ATTR_TYPE, 22, 1 },
2N/AOID_FacsimileTelephoneNumber[] = { OID_ATTR_TYPE, 23 },
2N/AOID_CollectiveFacsimileTelephoneNumber[] = { OID_ATTR_TYPE, 23, 1 },
2N/AOID_X_121Address[] = { OID_ATTR_TYPE, 24 },
2N/AOID_InternationalISDNNumber[] = { OID_ATTR_TYPE, 25 },
2N/AOID_CollectiveInternationalISDNNumber[] = { OID_ATTR_TYPE, 25, 1 },
2N/AOID_RegisteredAddress[] = { OID_ATTR_TYPE, 26 },
2N/AOID_DestinationIndicator[] = { OID_ATTR_TYPE, 27 },
2N/AOID_PreferredDeliveryMethod[] = { OID_ATTR_TYPE, 28 },
2N/AOID_PresentationAddress[] = { OID_ATTR_TYPE, 29 },
2N/AOID_SupportedApplicationContext[] = { OID_ATTR_TYPE, 30 },
2N/AOID_Member[] = { OID_ATTR_TYPE, 31 },
2N/AOID_Owner[] = { OID_ATTR_TYPE, 32 },
2N/AOID_RoleOccupant[] = { OID_ATTR_TYPE, 33 },
2N/AOID_SeeAlso[] = { OID_ATTR_TYPE, 34 },
2N/AOID_UserPassword[] = { OID_ATTR_TYPE, 35 },
2N/AOID_UserCertificate[] = { OID_ATTR_TYPE, 36 },
2N/AOID_CACertificate[] = { OID_ATTR_TYPE, 37 },
2N/AOID_AuthorityRevocationList[] = { OID_ATTR_TYPE, 38 },
2N/AOID_CertificateRevocationList[] = { OID_ATTR_TYPE, 39 },
2N/AOID_CrossCertificatePair[] = { OID_ATTR_TYPE, 40 },
2N/AOID_Name[] = { OID_ATTR_TYPE, 41 },
2N/AOID_GivenName[] = { OID_ATTR_TYPE, 42 },
2N/AOID_Initials[] = { OID_ATTR_TYPE, 43 },
2N/AOID_GenerationQualifier[] = { OID_ATTR_TYPE, 44 },
2N/AOID_UniqueIdentifier[] = { OID_ATTR_TYPE, 45 },
2N/AOID_DNQualifier[] = { OID_ATTR_TYPE, 46 },
2N/AOID_EnhancedSearchGuide[] = { OID_ATTR_TYPE, 47 },
2N/AOID_ProtocolInformation[] = { OID_ATTR_TYPE, 48 },
2N/AOID_DistinguishedName[] = { OID_ATTR_TYPE, 49 },
2N/AOID_UniqueMember[] = { OID_ATTR_TYPE, 50 },
2N/AOID_HouseIdentifier[] = { OID_ATTR_TYPE, 51 }
2N/A/* OID_SupportedAlgorithms[] = { OID_ATTR_TYPE, 52 }, */
2N/A/* OID_DeltaRevocationList[] = { OID_ATTR_TYPE, 53 }, */
2N/A/* OID_AttributeCertificate[] = { OID_ATTR_TYPE, 58 } */
2N/A;
2N/A
2N/A/* From PKCS 9 */
2N/Astatic uint8_t
2N/AOID_EmailAddress[] = { OID_PKCS_9, 1 },
2N/AOID_UnstructuredName[] = { OID_PKCS_9, 2 },
2N/AOID_ContentType[] = { OID_PKCS_9, 3 },
2N/AOID_MessageDigest[] = { OID_PKCS_9, 4 },
2N/AOID_SigningTime[] = { OID_PKCS_9, 5 },
2N/AOID_CounterSignature[] = { OID_PKCS_9, 6 },
2N/AOID_ChallengePassword[] = { OID_PKCS_9, 7 },
2N/AOID_UnstructuredAddress[] = { OID_PKCS_9, 8 },
2N/AOID_ExtendedCertificateAttributes[] = { OID_PKCS_9, 9 },
2N/AOID_ExtensionRequest[] = { OID_PKCS_9, 14 };
2N/A
2N/A/* From PKIX 1 */
2N/A/* Standard Extensions */
2N/Astatic uint8_t
2N/AOID_SubjectDirectoryAttributes[] = { OID_EXTENSION, 9 },
2N/AOID_SubjectKeyIdentifier[] = { OID_EXTENSION, 14 },
2N/AOID_KeyUsage[] = { OID_EXTENSION, 15 },
2N/AOID_PrivateKeyUsagePeriod[] = { OID_EXTENSION, 16 },
2N/AOID_SubjectAltName[] = { OID_EXTENSION, 17 },
2N/AOID_IssuerAltName[] = { OID_EXTENSION, 18 },
2N/AOID_BasicConstraints[] = { OID_EXTENSION, 19 },
2N/AOID_CrlNumber[] = { OID_EXTENSION, 20 },
2N/AOID_CrlReason[] = { OID_EXTENSION, 21 },
2N/AOID_HoldInstructionCode[] = { OID_EXTENSION, 23 },
2N/AOID_InvalidityDate[] = { OID_EXTENSION, 24 },
2N/AOID_DeltaCrlIndicator[] = { OID_EXTENSION, 27 },
2N/AOID_IssuingDistributionPoints[] = { OID_EXTENSION, 28 },
2N/A
2N/A/* OID_CertificateIssuer[] = { OID_EXTENSION, 29 }, */
2N/AOID_NameConstraints[] = { OID_EXTENSION, 30 },
2N/AOID_CrlDistributionPoints[] = { OID_EXTENSION, 31 },
2N/AOID_CertificatePolicies[] = { OID_EXTENSION, 32 },
2N/AOID_PolicyMappings[] = { OID_EXTENSION, 33 },
2N/A/* 34 deprecated */
2N/AOID_AuthorityKeyIdentifier[] = { OID_EXTENSION, 35 },
2N/AOID_PolicyConstraints[] = { OID_EXTENSION, 36 },
2N/AOID_ExtKeyUsage[] = { OID_EXTENSION, 37 }
2N/A;
2N/A
2N/A/* PKIX-defined extended key purpose OIDs */
2N/Astatic uint8_t
2N/AOID_QT_CPSuri[] = { OID_PKIX_QT_CPS },
2N/AOID_QT_Unotice[] = { OID_PKIX_QT_UNOTICE },
2N/A
2N/AOID_KP_ServerAuth[] = { OID_PKIX_KP, 1 },
2N/AOID_KP_ClientAuth[] = { OID_PKIX_KP, 2 },
2N/AOID_KP_CodeSigning[] = { OID_PKIX_KP, 3 },
2N/AOID_KP_EmailProtection[] = { OID_PKIX_KP, 4 },
2N/AOID_KP_IPSecEndSystem[] = { OID_PKIX_KP, 5 },
2N/AOID_KP_IPSecTunnel[] = { OID_PKIX_KP, 6 },
2N/AOID_KP_IPSecUser[] = { OID_PKIX_KP, 7 },
2N/AOID_KP_TimeStamping[] = { OID_PKIX_KP, 8 },
2N/AOID_KP_OCSPSigning[] = { OID_PKIX_KP, 9 }
2N/A;
2N/A
2N/A/* From PKIX 1 */
2N/Astatic uint8_t
2N/AOID_AuthorityInfoAccess[] = { OID_PKIX_PE, 1};
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_AuthorityInfoAccess = {OID_PKIX_LENGTH + 2, OID_AuthorityInfoAccess};
2N/A
2N/Astatic uint8_t
2N/AOID_PkixAdOcsp[] = {OID_PKIX_AD, 1};
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_PkixAdOcsp = {OID_PKIX_AD_LENGTH + 1, OID_PkixAdOcsp};
2N/A
2N/Astatic uint8_t
2N/AOID_PkixAdCaIssuers[] = {OID_PKIX_AD, 2};
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_PkixAdCaIssuers = {OID_PKIX_AD_LENGTH + 1, OID_PkixAdCaIssuers};
2N/A
2N/A/*
2N/A * From RFC 1274
2N/A */
2N/Astatic uint8_t
2N/AOID_userid[] = {OID_PILOT, 1},
2N/AOID_RFC822mailbox[] = {OID_PILOT, 3},
2N/AOID_domainComponent[] = {OID_PILOT, 25};
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_userid = {OID_PILOT_LENGTH + 1, OID_userid},
2N/AKMFOID_RFC822mailbox = {OID_PILOT_LENGTH + 1, OID_RFC822mailbox},
2N/AKMFOID_domainComponent = {OID_PILOT_LENGTH + 1, OID_domainComponent},
2N/AKMFOID_ObjectClass = {OID_ATTR_TYPE_LENGTH+1, OID_ObjectClass},
2N/AKMFOID_AliasedEntryName = {OID_ATTR_TYPE_LENGTH+1, OID_AliasedEntryName},
2N/AKMFOID_KnowledgeInformation = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_KnowledgeInformation},
2N/AKMFOID_CommonName = {OID_ATTR_TYPE_LENGTH+1, OID_CommonName},
2N/AKMFOID_Surname = {OID_ATTR_TYPE_LENGTH+1, OID_Surname},
2N/AKMFOID_SerialNumber = {OID_ATTR_TYPE_LENGTH+1, OID_SerialNumber},
2N/AKMFOID_CountryName = {OID_ATTR_TYPE_LENGTH+1, OID_CountryName},
2N/AKMFOID_LocalityName = {OID_ATTR_TYPE_LENGTH+1, OID_LocalityName},
2N/AKMFOID_StateProvinceName = {OID_ATTR_TYPE_LENGTH+1, OID_StateProvinceName},
2N/AKMFOID_CollectiveStateProvinceName = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveStateProvinceName},
2N/AKMFOID_StreetAddress = {OID_ATTR_TYPE_LENGTH+1, OID_StreetAddress},
2N/AKMFOID_CollectiveStreetAddress = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveStreetAddress},
2N/AKMFOID_OrganizationName = {OID_ATTR_TYPE_LENGTH+1, OID_OrganizationName},
2N/AKMFOID_CollectiveOrganizationName = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveOrganizationName},
2N/AKMFOID_OrganizationalUnitName = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_OrganizationalUnitName},
2N/AKMFOID_CollectiveOrganizationalUnitName = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveOrganizationalUnitName},
2N/AKMFOID_Title = {OID_ATTR_TYPE_LENGTH+1, OID_Title},
2N/AKMFOID_Description = {OID_ATTR_TYPE_LENGTH+1, OID_Description},
2N/AKMFOID_SearchGuide = {OID_ATTR_TYPE_LENGTH+1, OID_SearchGuide},
2N/AKMFOID_BusinessCategory = {OID_ATTR_TYPE_LENGTH+1, OID_BusinessCategory},
2N/AKMFOID_PostalAddress = {OID_ATTR_TYPE_LENGTH+1, OID_PostalAddress},
2N/AKMFOID_CollectivePostalAddress = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectivePostalAddress},
2N/AKMFOID_PostalCode = {OID_ATTR_TYPE_LENGTH+1, OID_PostalCode},
2N/AKMFOID_CollectivePostalCode = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectivePostalCode},
2N/AKMFOID_PostOfficeBox = {OID_ATTR_TYPE_LENGTH+1, OID_PostOfficeBox},
2N/AKMFOID_CollectivePostOfficeBox = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectivePostOfficeBox},
2N/AKMFOID_PhysicalDeliveryOfficeName = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_PhysicalDeliveryOfficeName},
2N/AKMFOID_CollectivePhysicalDeliveryOfficeName = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectivePhysicalDeliveryOfficeName},
2N/AKMFOID_TelephoneNumber = {OID_ATTR_TYPE_LENGTH+1, OID_TelephoneNumber},
2N/AKMFOID_CollectiveTelephoneNumber = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveTelephoneNumber},
2N/AKMFOID_TelexNumber = {OID_ATTR_TYPE_LENGTH+1, OID_TelexNumber},
2N/AKMFOID_CollectiveTelexNumber = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveTelexNumber},
2N/AKMFOID_TelexTerminalIdentifier = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_TelexTerminalIdentifier},
2N/AKMFOID_CollectiveTelexTerminalIdentifier = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveTelexTerminalIdentifier},
2N/AKMFOID_FacsimileTelephoneNumber = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_FacsimileTelephoneNumber},
2N/AKMFOID_CollectiveFacsimileTelephoneNumber = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveFacsimileTelephoneNumber},
2N/AKMFOID_X_121Address = {OID_ATTR_TYPE_LENGTH+1, OID_X_121Address},
2N/AKMFOID_InternationalISDNNumber = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_InternationalISDNNumber},
2N/AKMFOID_CollectiveInternationalISDNNumber = {OID_ATTR_TYPE_LENGTH+2,
2N/A OID_CollectiveInternationalISDNNumber},
2N/AKMFOID_RegisteredAddress = {OID_ATTR_TYPE_LENGTH+1, OID_RegisteredAddress},
2N/AKMFOID_DestinationIndicator = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_DestinationIndicator},
2N/AKMFOID_PreferredDeliveryMethod = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_PreferredDeliveryMethod},
2N/AKMFOID_PresentationAddress = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_PresentationAddress},
2N/AKMFOID_SupportedApplicationContext = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_SupportedApplicationContext},
2N/AKMFOID_Member = {OID_ATTR_TYPE_LENGTH+1, OID_Member},
2N/AKMFOID_Owner = {OID_ATTR_TYPE_LENGTH+1, OID_Owner},
2N/AKMFOID_RoleOccupant = {OID_ATTR_TYPE_LENGTH+1, OID_RoleOccupant},
2N/AKMFOID_SeeAlso = {OID_ATTR_TYPE_LENGTH+1, OID_SeeAlso},
2N/AKMFOID_UserPassword = {OID_ATTR_TYPE_LENGTH+1, OID_UserPassword},
2N/AKMFOID_UserCertificate = {OID_ATTR_TYPE_LENGTH+1, OID_UserCertificate},
2N/AKMFOID_CACertificate = {OID_ATTR_TYPE_LENGTH+1, OID_CACertificate},
2N/AKMFOID_AuthorityRevocationList = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_AuthorityRevocationList},
2N/AKMFOID_CertificateRevocationList = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_CertificateRevocationList},
2N/AKMFOID_CrossCertificatePair = {OID_ATTR_TYPE_LENGTH+1,
2N/A OID_CrossCertificatePair},
2N/AKMFOID_Name = {OID_ATTR_TYPE_LENGTH+1, OID_Name},
2N/AKMFOID_GivenName = {OID_ATTR_TYPE_LENGTH+1, OID_GivenName},
2N/AKMFOID_Initials = {OID_ATTR_TYPE_LENGTH+1, OID_Initials},
2N/AKMFOID_GenerationQualifier = {OID_ATTR_TYPE_LENGTH+1, OID_GenerationQualifier},
2N/AKMFOID_UniqueIdentifier = {OID_ATTR_TYPE_LENGTH+1, OID_UniqueIdentifier},
2N/AKMFOID_DNQualifier = {OID_ATTR_TYPE_LENGTH+1, OID_DNQualifier},
2N/AKMFOID_EnhancedSearchGuide = {OID_ATTR_TYPE_LENGTH+1, OID_EnhancedSearchGuide},
2N/AKMFOID_ProtocolInformation = {OID_ATTR_TYPE_LENGTH+1, OID_ProtocolInformation},
2N/AKMFOID_DistinguishedName = {OID_ATTR_TYPE_LENGTH+1, OID_DistinguishedName},
2N/AKMFOID_UniqueMember = {OID_ATTR_TYPE_LENGTH+1, OID_UniqueMember},
2N/AKMFOID_HouseIdentifier = {OID_ATTR_TYPE_LENGTH+1, OID_HouseIdentifier},
2N/AKMFOID_EmailAddress = {OID_PKCS_9_LENGTH+1, OID_EmailAddress},
2N/AKMFOID_UnstructuredName = {OID_PKCS_9_LENGTH+1, OID_UnstructuredName},
2N/AKMFOID_ContentType = {OID_PKCS_9_LENGTH+1, OID_ContentType},
2N/AKMFOID_MessageDigest = {OID_PKCS_9_LENGTH+1, OID_MessageDigest},
2N/AKMFOID_SigningTime = {OID_PKCS_9_LENGTH+1, OID_SigningTime},
2N/AKMFOID_CounterSignature = {OID_PKCS_9_LENGTH+1, OID_CounterSignature},
2N/AKMFOID_ChallengePassword = {OID_PKCS_9_LENGTH+1, OID_ChallengePassword},
2N/AKMFOID_UnstructuredAddress = {OID_PKCS_9_LENGTH+1, OID_UnstructuredAddress},
2N/AKMFOID_ExtendedCertificateAttributes = {OID_PKCS_9_LENGTH+1,
2N/A OID_ExtendedCertificateAttributes},
2N/AKMFOID_ExtensionRequest = {OID_PKCS_9_LENGTH + 1, OID_ExtensionRequest};
2N/A
2N/Astatic uint8_t
2N/AOID_AuthorityKeyID[] = { OID_EXTENSION, 1 },
2N/AOID_VerisignCertificatePolicy[] = { OID_EXTENSION, 3 },
2N/AOID_KeyUsageRestriction[] = { OID_EXTENSION, 4 };
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_AuthorityKeyID = {OID_EXTENSION_LENGTH+1, OID_AuthorityKeyID},
2N/A
2N/AKMFOID_VerisignCertificatePolicy = {OID_EXTENSION_LENGTH+1,
2N/A OID_VerisignCertificatePolicy},
2N/A
2N/AKMFOID_KeyUsageRestriction = {OID_EXTENSION_LENGTH+1,
2N/A OID_KeyUsageRestriction},
2N/A
2N/AKMFOID_SubjectDirectoryAttributes = {OID_EXTENSION_LENGTH+1,
2N/A OID_SubjectDirectoryAttributes},
2N/A
2N/AKMFOID_SubjectKeyIdentifier = {OID_EXTENSION_LENGTH+1,
2N/A OID_SubjectKeyIdentifier },
2N/AKMFOID_KeyUsage = {OID_EXTENSION_LENGTH+1, OID_KeyUsage },
2N/A
2N/AKMFOID_PrivateKeyUsagePeriod = {OID_EXTENSION_LENGTH+1,
2N/A OID_PrivateKeyUsagePeriod},
2N/AKMFOID_SubjectAltName = {OID_EXTENSION_LENGTH+1, OID_SubjectAltName },
2N/AKMFOID_IssuerAltName = {OID_EXTENSION_LENGTH+1, OID_IssuerAltName },
2N/AKMFOID_BasicConstraints = {OID_EXTENSION_LENGTH+1, OID_BasicConstraints },
2N/A
2N/AKMFOID_CrlNumber = {OID_EXTENSION_LENGTH+1, OID_CrlNumber},
2N/A
2N/AKMFOID_CrlReason = {OID_EXTENSION_LENGTH+1, OID_CrlReason},
2N/A
2N/AKMFOID_HoldInstructionCode = {OID_EXTENSION_LENGTH+1, OID_HoldInstructionCode},
2N/A
2N/AKMFOID_InvalidityDate = {OID_EXTENSION_LENGTH+1, OID_InvalidityDate},
2N/A
2N/AKMFOID_DeltaCrlIndicator = {OID_EXTENSION_LENGTH+1, OID_DeltaCrlIndicator},
2N/A
2N/AKMFOID_IssuingDistributionPoints = {OID_EXTENSION_LENGTH+1,
2N/A OID_IssuingDistributionPoints},
2N/A
2N/AKMFOID_NameConstraints = {OID_EXTENSION_LENGTH+1,
2N/A OID_NameConstraints},
2N/A
2N/AKMFOID_CrlDistributionPoints = {OID_EXTENSION_LENGTH+1,
2N/A OID_CrlDistributionPoints},
2N/A
2N/AKMFOID_CertificatePolicies = {OID_EXTENSION_LENGTH+1,
2N/A OID_CertificatePolicies},
2N/A
2N/AKMFOID_PolicyMappings = {OID_EXTENSION_LENGTH+1, OID_PolicyMappings},
2N/A
2N/AKMFOID_PolicyConstraints = {OID_EXTENSION_LENGTH+1, OID_PolicyConstraints},
2N/A
2N/AKMFOID_AuthorityKeyIdentifier = {OID_EXTENSION_LENGTH+1,
2N/A OID_AuthorityKeyIdentifier},
2N/A
2N/AKMFOID_ExtendedKeyUsage = {OID_EXTENSION_LENGTH+1, OID_ExtKeyUsage},
2N/A
2N/AKMFOID_PKIX_PQ_CPSuri = {OID_PKIX_QT_CPS_LENGTH, OID_QT_CPSuri},
2N/A
2N/AKMFOID_PKIX_PQ_Unotice = {OID_PKIX_QT_UNOTICE_LENGTH, OID_QT_Unotice},
2N/A
2N/A/* Extended Key Usage OIDs */
2N/AKMFOID_PKIX_KP_ServerAuth = {OID_PKIX_KP_LENGTH + 1, OID_KP_ServerAuth},
2N/A
2N/AKMFOID_PKIX_KP_ClientAuth = {OID_PKIX_KP_LENGTH + 1, OID_KP_ClientAuth},
2N/A
2N/AKMFOID_PKIX_KP_CodeSigning = {OID_PKIX_KP_LENGTH + 1, OID_KP_CodeSigning},
2N/A
2N/AKMFOID_PKIX_KP_EmailProtection = {OID_PKIX_KP_LENGTH + 1,
2N/A OID_KP_EmailProtection},
2N/A
2N/AKMFOID_PKIX_KP_IPSecEndSystem = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecEndSystem},
2N/A
2N/AKMFOID_PKIX_KP_IPSecTunnel = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecTunnel},
2N/A
2N/AKMFOID_PKIX_KP_IPSecUser = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecUser},
2N/A
2N/AKMFOID_PKIX_KP_TimeStamping = {OID_PKIX_KP_LENGTH + 1, OID_KP_TimeStamping},
2N/A
2N/AKMFOID_PKIX_KP_OCSPSigning = {OID_PKIX_KP_LENGTH + 1, OID_KP_OCSPSigning};
2N/A
2N/Astatic uint8_t
2N/AOID_OIW_SHA1[] = { OID_OIW_ALGORITHM, 26},
2N/AOID_OIW_DSA[] = { OID_OIW_ALGORITHM, 12 },
2N/AOID_OIW_DSAWithSHA1[] = { OID_OIW_ALGORITHM, 13 },
2N/AOID_RSAEncryption[] = { OID_PKCS_1, 1 },
2N/AOID_MD2WithRSA[] = { OID_PKCS_1, 2 },
2N/AOID_MD5WithRSA[] = { OID_PKCS_1, 4 },
2N/AOID_SHA1WithRSA[] = { OID_PKCS_1, 5 },
2N/AOID_SHA256WithRSA[] = { OID_PKCS_1, 11 },
2N/AOID_SHA384WithRSA[] = { OID_PKCS_1, 12 },
2N/AOID_SHA512WithRSA[] = { OID_PKCS_1, 13 },
2N/AOID_X9CM_DSA[] = { OID_X9CM_X9ALGORITHM, 1 },
2N/AOID_X9CM_DSAWithSHA1[] = { OID_X9CM_X9ALGORITHM, 3};
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_SHA1 = {OID_OIW_ALGORITHM_LENGTH+1, OID_OIW_SHA1},
2N/AKMFOID_RSA = {OID_PKCS_1_LENGTH+1, OID_RSAEncryption},
2N/AKMFOID_DSA = {OID_OIW_ALGORITHM_LENGTH+1, OID_OIW_DSA},
2N/AKMFOID_MD5WithRSA = {OID_PKCS_1_LENGTH+1, OID_MD5WithRSA},
2N/AKMFOID_MD2WithRSA = {OID_PKCS_1_LENGTH+1, OID_MD2WithRSA},
2N/AKMFOID_SHA1WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA1WithRSA},
2N/AKMFOID_SHA256WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA256WithRSA},
2N/AKMFOID_SHA384WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA384WithRSA},
2N/AKMFOID_SHA512WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA512WithRSA},
2N/AKMFOID_SHA1WithDSA = {OID_OIW_ALGORITHM_LENGTH+1, OID_OIW_DSAWithSHA1},
2N/AKMFOID_X9CM_DSA = {OID_X9CM_X9ALGORITHM_LENGTH+1, OID_X9CM_DSA},
2N/AKMFOID_X9CM_DSAWithSHA1 = {OID_X9CM_X9ALGORITHM_LENGTH+1,
2N/A OID_X9CM_DSAWithSHA1};
2N/A
2N/A/*
2N/A * New for PKINIT support.
2N/A */
2N/Astatic uint8_t
2N/AOID_pkinit_san[] = { OID_KRB5_SAN },
2N/AOID_pkinit_san_upn[] = { OID_MS_KP_SC_LOGON_UPN },
2N/AOID_pkinit_kp_clientauth[] = { OID_KRB5_PKINIT_KPCLIENTAUTH },
2N/AOID_pkinit_kp_kdc[] = { OID_KRB5_PKINIT_KPKDC },
2N/AOID_pkinit_kp_sc_logon[] = { OID_MS_KP_SC_LOGON };
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_PKINIT_san = {OID_KRB5_SAN_LENGTH, OID_pkinit_san },
2N/AKMFOID_PKINIT_ClientAuth = {OID_KRB5_PKINIT_KPCLIENTAUTH_LENGTH,
2N/A OID_pkinit_kp_clientauth},
2N/AKMFOID_PKINIT_Kdc = {OID_KRB5_PKINIT_KPKDC_LENGTH,
2N/A OID_pkinit_kp_kdc},
2N/AKMFOID_MS_KP_SCLogon = {OID_MS_KP_SC_LOGON_LENGTH,
2N/A OID_pkinit_kp_sc_logon},
2N/AKMFOID_MS_KP_SCLogon_UPN = {OID_MS_KP_SC_LOGON_UPN_LENGTH,
2N/A OID_pkinit_san_upn};
2N/A
2N/A/*
2N/A * MD5
2N/A * iso(1) member-body(2) us(840) rsadsi(113549)
2N/A * digestAlgorithm(2) 5
2N/A */
2N/A#define RSADSI 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d
2N/A#define OID_id_md5 RSADSI, 0x02, 0x05
2N/A
2N/A/*
2N/A * SHA2 OIDs
2N/A */
2N/A#define NIST_ALG 96, 134, 72, 1, 101, 3, 4
2N/A#define NIST_HASH NIST_ALG, 2
2N/A#define OID_id_sha256 NIST_HASH, 1
2N/A#define OID_id_sha384 NIST_HASH, 2
2N/A#define OID_id_sha512 NIST_HASH, 3
2N/A#define OID_id_sha224 NIST_HASH, 4
2N/A
2N/A#define OID_id_dsa_with_sha224 NIST_ALG, 3, 1
2N/A#define OID_id_dsa_with_sha256 NIST_ALG, 3, 2
2N/A
2N/A/*
2N/A * For ECC support.
2N/A */
2N/A#define CERTICOM_OID 0x2b, 0x81, 0x04
2N/A#define SECG_OID CERTICOM_OID, 0x00
2N/A
2N/A#define ANSI_X962_OID 0x2a, 0x86, 0x48, 0xce, 0x3d
2N/A#define ANSI_X962_CURVE_OID ANSI_X962_OID, 0x03
2N/A#define ANSI_X962_GF2m_OID ANSI_X962_CURVE_OID, 0x00
2N/A#define ANSI_X962_GFp_OID ANSI_X962_CURVE_OID, 0x01
2N/A
2N/A#define ANSI_X962_SIG_OID ANSI_X962_OID, 0x04
2N/A#define OID_ecdsa_with_sha224 ANSI_X962_SIG_OID, 3, 1
2N/A#define OID_ecdsa_with_sha256 ANSI_X962_SIG_OID, 3, 2
2N/A#define OID_ecdsa_with_sha384 ANSI_X962_SIG_OID, 3, 3
2N/A#define OID_ecdsa_with_sha512 ANSI_X962_SIG_OID, 3, 4
2N/A
2N/Astatic uint8_t
2N/AOID_secp112r1[] = { 0x6, 0x5, SECG_OID, 0x06 },
2N/AOID_secp112r2[] = { 0x6, 0x5, SECG_OID, 0x07 },
2N/AOID_secp128r1[] = { 0x6, 0x5, SECG_OID, 0x1c },
2N/AOID_secp128r2[] = { 0x6, 0x5, SECG_OID, 0x1d },
2N/AOID_secp160k1[] = { 0x6, 0x5, SECG_OID, 0x09 },
2N/AOID_secp160r1[] = { 0x6, 0x5, SECG_OID, 0x08 },
2N/AOID_secp160r2[] = { 0x6, 0x5, SECG_OID, 0x1e },
2N/AOID_secp192k1[] = { 0x6, 0x5, SECG_OID, 0x1f },
2N/AOID_secp224k1[] = { 0x6, 0x5, SECG_OID, 0x20 },
2N/AOID_secp224r1[] = { 0x6, 0x5, SECG_OID, 0x21 },
2N/AOID_secp256k1[] = { 0x6, 0x5, SECG_OID, 0x0a },
2N/AOID_secp384r1[] = { 0x6, 0x5, SECG_OID, 0x22 },
2N/AOID_secp521r1[] = { 0x6, 0x5, SECG_OID, 0x23 },
2N/AOID_sect113r1[] = { 0x6, 0x5, SECG_OID, 0x04 },
2N/AOID_sect113r2[] = { 0x6, 0x5, SECG_OID, 0x05 },
2N/AOID_sect131r1[] = { 0x6, 0x5, SECG_OID, 0x16 },
2N/AOID_sect131r2[] = { 0x6, 0x5, SECG_OID, 0x17 },
2N/AOID_sect163k1[] = { 0x6, 0x5, SECG_OID, 0x01 },
2N/AOID_sect163r1[] = { 0x6, 0x5, SECG_OID, 0x02 },
2N/AOID_sect163r2[] = { 0x6, 0x5, SECG_OID, 0x0f },
2N/AOID_sect193r1[] = { 0x6, 0x5, SECG_OID, 0x18 },
2N/AOID_sect193r2[] = { 0x6, 0x5, SECG_OID, 0x19 },
2N/AOID_sect233k1[] = { 0x6, 0x5, SECG_OID, 0x1a },
2N/AOID_sect233r1[] = { 0x6, 0x5, SECG_OID, 0x1b },
2N/AOID_sect239k1[] = { 0x6, 0x5, SECG_OID, 0x03 },
2N/AOID_sect283k1[] = { 0x6, 0x5, SECG_OID, 0x10 },
2N/AOID_sect283r1[] = { 0x6, 0x5, SECG_OID, 0x11 },
2N/AOID_sect409k1[] = { 0x6, 0x5, SECG_OID, 0x24 },
2N/AOID_sect409r1[] = { 0x6, 0x5, SECG_OID, 0x25 },
2N/AOID_sect571k1[] = { 0x6, 0x5, SECG_OID, 0x26 },
2N/AOID_sect571r1[] = { 0x6, 0x5, SECG_OID, 0x27 },
2N/AOID_c2pnb163v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x01 },
2N/AOID_c2pnb163v2[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x02 },
2N/AOID_c2pnb163v3[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x03 },
2N/AOID_c2pnb176v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x04 },
2N/AOID_c2tnb191v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x05 },
2N/AOID_c2tnb191v2[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x06 },
2N/AOID_c2tnb191v3[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x07 },
2N/AOID_c2pnb208w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0a },
2N/AOID_c2tnb239v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0b },
2N/AOID_c2tnb239v2[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0c },
2N/AOID_c2tnb239v3[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0d },
2N/AOID_c2pnb272w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x10 },
2N/AOID_c2pnb304w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x11 },
2N/AOID_c2tnb359v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x12 },
2N/AOID_c2pnb368w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x13 },
2N/AOID_c2tnb431r1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x14 },
2N/A
2N/AOID_prime192v2[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x02 },
2N/AOID_prime192v3[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x03 },
2N/A
2N/AOID_secp192r1[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x01 },
2N/AOID_secp256r1[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x07 };
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_ECC_secp112r1 = {sizeof (OID_secp112r1), OID_secp112r1},
2N/AKMFOID_ECC_secp112r2 = {sizeof (OID_secp112r2), OID_secp112r2},
2N/AKMFOID_ECC_secp128r1 = {sizeof (OID_secp128r1), OID_secp128r1},
2N/AKMFOID_ECC_secp128r2 = {sizeof (OID_secp128r2), OID_secp128r2},
2N/AKMFOID_ECC_secp160k1 = {sizeof (OID_secp160k1), OID_secp160k1},
2N/AKMFOID_ECC_secp160r1 = {sizeof (OID_secp160r1), OID_secp160r1},
2N/AKMFOID_ECC_secp160r2 = {sizeof (OID_secp160r2), OID_secp160r2},
2N/AKMFOID_ECC_secp192k1 = {sizeof (OID_secp192k1), OID_secp192k1},
2N/AKMFOID_ECC_secp224k1 = {sizeof (OID_secp224k1), OID_secp224k1},
2N/AKMFOID_ECC_secp224r1 = {sizeof (OID_secp224r1), OID_secp224r1},
2N/AKMFOID_ECC_secp256k1 = {sizeof (OID_secp256k1), OID_secp256k1},
2N/AKMFOID_ECC_secp384r1 = {sizeof (OID_secp384r1), OID_secp384r1},
2N/AKMFOID_ECC_secp521r1 = {sizeof (OID_secp521r1), OID_secp521r1},
2N/AKMFOID_ECC_sect113r1 = {sizeof (OID_sect113r1), OID_sect113r1},
2N/AKMFOID_ECC_sect113r2 = {sizeof (OID_sect113r2), OID_sect113r2},
2N/AKMFOID_ECC_sect131r1 = {sizeof (OID_sect131r1), OID_sect131r1},
2N/AKMFOID_ECC_sect131r2 = {sizeof (OID_sect131r2), OID_sect131r2},
2N/AKMFOID_ECC_sect163k1 = {sizeof (OID_sect163k1), OID_sect163k1},
2N/AKMFOID_ECC_sect163r1 = {sizeof (OID_sect163r1), OID_sect163r1},
2N/AKMFOID_ECC_sect163r2 = {sizeof (OID_sect163r2), OID_sect163r2},
2N/AKMFOID_ECC_sect193r1 = {sizeof (OID_sect193r1), OID_sect193r1},
2N/AKMFOID_ECC_sect193r2 = {sizeof (OID_sect193r2), OID_sect193r2},
2N/AKMFOID_ECC_sect233k1 = {sizeof (OID_sect233k1), OID_sect233k1},
2N/AKMFOID_ECC_sect233r1 = {sizeof (OID_sect233r1), OID_sect233r1},
2N/AKMFOID_ECC_sect239k1 = {sizeof (OID_sect239k1), OID_sect239k1},
2N/AKMFOID_ECC_sect283k1 = {sizeof (OID_sect283k1), OID_sect283k1},
2N/AKMFOID_ECC_sect283r1 = {sizeof (OID_sect283r1), OID_sect283r1},
2N/AKMFOID_ECC_sect409k1 = {sizeof (OID_sect409k1), OID_sect409k1},
2N/AKMFOID_ECC_sect409r1 = {sizeof (OID_sect409r1), OID_sect409r1},
2N/AKMFOID_ECC_sect571k1 = {sizeof (OID_sect571k1), OID_sect571k1},
2N/AKMFOID_ECC_sect571r1 = {sizeof (OID_sect571r1), OID_sect571r1},
2N/AKMFOID_ECC_c2pnb163v1 = {sizeof (OID_c2pnb163v1), OID_c2pnb163v1},
2N/AKMFOID_ECC_c2pnb163v2 = {sizeof (OID_c2pnb163v2), OID_c2pnb163v2},
2N/AKMFOID_ECC_c2pnb163v3 = {sizeof (OID_c2pnb163v3), OID_c2pnb163v3},
2N/AKMFOID_ECC_c2pnb176v1 = {sizeof (OID_c2pnb176v1), OID_c2pnb176v1},
2N/AKMFOID_ECC_c2tnb191v1 = {sizeof (OID_c2tnb191v1), OID_c2tnb191v1},
2N/AKMFOID_ECC_c2tnb191v2 = {sizeof (OID_c2tnb191v2), OID_c2tnb191v2},
2N/AKMFOID_ECC_c2tnb191v3 = {sizeof (OID_c2tnb191v3), OID_c2tnb191v3},
2N/AKMFOID_ECC_c2pnb208w1 = {sizeof (OID_c2pnb208w1), OID_c2pnb208w1},
2N/AKMFOID_ECC_c2tnb239v1 = {sizeof (OID_c2tnb239v1), OID_c2tnb239v1},
2N/AKMFOID_ECC_c2tnb239v2 = {sizeof (OID_c2tnb239v2), OID_c2tnb239v2},
2N/AKMFOID_ECC_c2tnb239v3 = {sizeof (OID_c2tnb239v3), OID_c2tnb239v3},
2N/AKMFOID_ECC_c2pnb272w1 = {sizeof (OID_c2pnb272w1), OID_c2pnb272w1},
2N/AKMFOID_ECC_c2pnb304w1 = {sizeof (OID_c2pnb304w1), OID_c2pnb304w1},
2N/AKMFOID_ECC_c2tnb359v1 = {sizeof (OID_c2tnb359v1), OID_c2tnb359v1},
2N/AKMFOID_ECC_c2pnb368w1 = {sizeof (OID_c2pnb368w1), OID_c2pnb368w1},
2N/AKMFOID_ECC_c2tnb431r1 = {sizeof (OID_c2tnb431r1), OID_c2tnb431r1},
2N/AKMFOID_ECC_prime192v2 = {sizeof (OID_prime192v2), OID_prime192v2},
2N/AKMFOID_ECC_prime192v3 = {sizeof (OID_prime192v3), OID_prime192v3},
2N/AKMFOID_ECC_secp192r1 = {sizeof (OID_secp192r1), OID_secp192r1},
2N/AKMFOID_ECC_secp256r1 = {sizeof (OID_secp256r1), OID_secp256r1};
2N/A
2N/Astatic uint8_t
2N/AOID_EC_PUBLIC_KEY[] = {ANSI_X962_OID, 0x02, 0x01},
2N/AOID_ECDSA_SHA1[] = {ANSI_X962_OID, 0x04, 0x01},
2N/AOID_ECDSA_SHA224[] = {ANSI_X962_OID, 0x04, 0x03, 0x01},
2N/AOID_ECDSA_SHA256[] = {ANSI_X962_OID, 0x04, 0x03, 0x02},
2N/AOID_ECDSA_SHA384[] = {ANSI_X962_OID, 0x04, 0x03, 0x03},
2N/AOID_ECDSA_SHA512[] = {ANSI_X962_OID, 0x04, 0x03, 0x04},
2N/AOID_DSA_SHA224[] = {OID_id_dsa_with_sha224},
2N/AOID_DSA_SHA256[] = {OID_id_dsa_with_sha256},
2N/AOID_SHA224[] = {OID_id_sha224},
2N/AOID_SHA256[] = {OID_id_sha256},
2N/AOID_SHA384[] = {OID_id_sha384},
2N/AOID_SHA512[] = {OID_id_sha512},
2N/AOID_MD5[] = {OID_id_md5};
2N/A
2N/Aconst KMF_OID
2N/AKMFOID_EC_PUBLIC_KEY = { sizeof (OID_EC_PUBLIC_KEY), OID_EC_PUBLIC_KEY},
2N/AKMFOID_SHA1WithECDSA = { sizeof (OID_ECDSA_SHA1), OID_ECDSA_SHA1},
2N/AKMFOID_SHA224WithECDSA = { sizeof (OID_ECDSA_SHA224), OID_ECDSA_SHA224},
2N/AKMFOID_SHA256WithECDSA = { sizeof (OID_ECDSA_SHA256), OID_ECDSA_SHA256},
2N/AKMFOID_SHA384WithECDSA = { sizeof (OID_ECDSA_SHA384), OID_ECDSA_SHA384},
2N/AKMFOID_SHA512WithECDSA = { sizeof (OID_ECDSA_SHA512), OID_ECDSA_SHA512},
2N/AKMFOID_SHA224WithDSA = { sizeof (OID_DSA_SHA224), OID_DSA_SHA224},
2N/AKMFOID_SHA256WithDSA = { sizeof (OID_DSA_SHA256), OID_DSA_SHA256},
2N/AKMFOID_SHA224 = { sizeof (OID_SHA224), OID_SHA224},
2N/AKMFOID_SHA256 = { sizeof (OID_SHA256), OID_SHA256},
2N/AKMFOID_SHA384 = { sizeof (OID_SHA384), OID_SHA384},
2N/AKMFOID_SHA512 = { sizeof (OID_SHA512), OID_SHA512},
2N/AKMFOID_MD5 = { sizeof (OID_MD5), OID_MD5};