199ebb4caSwyllys /* 2*e65e5c2dSWyllys Ingersoll * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 39a767088Shaimay * Use is subject to license terms. 499ebb4caSwyllys */ 599ebb4caSwyllys /* 699ebb4caSwyllys * Copyright(c) 1995-2000 Intel Corporation. All rights reserved. 799ebb4caSwyllys */ 899ebb4caSwyllys 999ebb4caSwyllys #include <kmfapi.h> 1099ebb4caSwyllys 1199ebb4caSwyllys /* From X.520 */ 1299ebb4caSwyllys static uint8_t 1399ebb4caSwyllys OID_ObjectClass[] = { OID_ATTR_TYPE, 0 }, 1499ebb4caSwyllys OID_AliasedEntryName[] = { OID_ATTR_TYPE, 1 }, 1599ebb4caSwyllys OID_KnowledgeInformation[] = { OID_ATTR_TYPE, 2 }, 1699ebb4caSwyllys OID_CommonName[] = { OID_ATTR_TYPE, 3 }, 1799ebb4caSwyllys OID_Surname[] = { OID_ATTR_TYPE, 4 }, 1899ebb4caSwyllys OID_SerialNumber[] = { OID_ATTR_TYPE, 5 }, 1999ebb4caSwyllys OID_CountryName[] = { OID_ATTR_TYPE, 6 }, 2099ebb4caSwyllys OID_LocalityName[] = { OID_ATTR_TYPE, 7 }, 2199ebb4caSwyllys OID_StateProvinceName[] = { OID_ATTR_TYPE, 8 }, 2299ebb4caSwyllys OID_CollectiveStateProvinceName[] = { OID_ATTR_TYPE, 8, 1 }, 2399ebb4caSwyllys OID_StreetAddress[] = { OID_ATTR_TYPE, 9 }, 2499ebb4caSwyllys OID_CollectiveStreetAddress[] = { OID_ATTR_TYPE, 9, 1 }, 2599ebb4caSwyllys OID_OrganizationName[] = { OID_ATTR_TYPE, 10 }, 2699ebb4caSwyllys OID_CollectiveOrganizationName[] = { OID_ATTR_TYPE, 10, 1 }, 2799ebb4caSwyllys OID_OrganizationalUnitName[] = { OID_ATTR_TYPE, 11 }, 2899ebb4caSwyllys OID_CollectiveOrganizationalUnitName[] = { OID_ATTR_TYPE, 11, 1 }, 2999ebb4caSwyllys OID_Title[] = { OID_ATTR_TYPE, 12 }, 3099ebb4caSwyllys OID_Description[] = { OID_ATTR_TYPE, 13 }, 3199ebb4caSwyllys OID_SearchGuide[] = { OID_ATTR_TYPE, 14 }, 3299ebb4caSwyllys OID_BusinessCategory[] = { OID_ATTR_TYPE, 15 }, 3399ebb4caSwyllys OID_PostalAddress[] = { OID_ATTR_TYPE, 16 }, 3499ebb4caSwyllys OID_CollectivePostalAddress[] = { OID_ATTR_TYPE, 16, 1 }, 3599ebb4caSwyllys OID_PostalCode[] = { OID_ATTR_TYPE, 17 }, 3699ebb4caSwyllys OID_CollectivePostalCode[] = { OID_ATTR_TYPE, 17, 1 }, 3799ebb4caSwyllys OID_PostOfficeBox[] = { OID_ATTR_TYPE, 18 }, 3899ebb4caSwyllys OID_CollectivePostOfficeBox[] = { OID_ATTR_TYPE, 18, 1 }, 3999ebb4caSwyllys OID_PhysicalDeliveryOfficeName[] = { OID_ATTR_TYPE, 19 }, 4099ebb4caSwyllys OID_CollectivePhysicalDeliveryOfficeName[] = { OID_ATTR_TYPE, 19, 1 }, 4199ebb4caSwyllys OID_TelephoneNumber[] = { OID_ATTR_TYPE, 20 }, 4299ebb4caSwyllys OID_CollectiveTelephoneNumber[] = { OID_ATTR_TYPE, 20, 1 }, 4399ebb4caSwyllys OID_TelexNumber[] = { OID_ATTR_TYPE, 21 }, 4499ebb4caSwyllys OID_CollectiveTelexNumber[] = { OID_ATTR_TYPE, 21, 1 }, 4599ebb4caSwyllys OID_TelexTerminalIdentifier[] = { OID_ATTR_TYPE, 22 }, 4699ebb4caSwyllys OID_CollectiveTelexTerminalIdentifier[] = { OID_ATTR_TYPE, 22, 1 }, 4799ebb4caSwyllys OID_FacsimileTelephoneNumber[] = { OID_ATTR_TYPE, 23 }, 4899ebb4caSwyllys OID_CollectiveFacsimileTelephoneNumber[] = { OID_ATTR_TYPE, 23, 1 }, 4999ebb4caSwyllys OID_X_121Address[] = { OID_ATTR_TYPE, 24 }, 5099ebb4caSwyllys OID_InternationalISDNNumber[] = { OID_ATTR_TYPE, 25 }, 5199ebb4caSwyllys OID_CollectiveInternationalISDNNumber[] = { OID_ATTR_TYPE, 25, 1 }, 5299ebb4caSwyllys OID_RegisteredAddress[] = { OID_ATTR_TYPE, 26 }, 5399ebb4caSwyllys OID_DestinationIndicator[] = { OID_ATTR_TYPE, 27 }, 5499ebb4caSwyllys OID_PreferredDeliveryMethod[] = { OID_ATTR_TYPE, 28 }, 5599ebb4caSwyllys OID_PresentationAddress[] = { OID_ATTR_TYPE, 29 }, 5699ebb4caSwyllys OID_SupportedApplicationContext[] = { OID_ATTR_TYPE, 30 }, 5799ebb4caSwyllys OID_Member[] = { OID_ATTR_TYPE, 31 }, 5899ebb4caSwyllys OID_Owner[] = { OID_ATTR_TYPE, 32 }, 5999ebb4caSwyllys OID_RoleOccupant[] = { OID_ATTR_TYPE, 33 }, 6099ebb4caSwyllys OID_SeeAlso[] = { OID_ATTR_TYPE, 34 }, 6199ebb4caSwyllys OID_UserPassword[] = { OID_ATTR_TYPE, 35 }, 6299ebb4caSwyllys OID_UserCertificate[] = { OID_ATTR_TYPE, 36 }, 6399ebb4caSwyllys OID_CACertificate[] = { OID_ATTR_TYPE, 37 }, 6499ebb4caSwyllys OID_AuthorityRevocationList[] = { OID_ATTR_TYPE, 38 }, 6599ebb4caSwyllys OID_CertificateRevocationList[] = { OID_ATTR_TYPE, 39 }, 6699ebb4caSwyllys OID_CrossCertificatePair[] = { OID_ATTR_TYPE, 40 }, 6799ebb4caSwyllys OID_Name[] = { OID_ATTR_TYPE, 41 }, 6899ebb4caSwyllys OID_GivenName[] = { OID_ATTR_TYPE, 42 }, 6999ebb4caSwyllys OID_Initials[] = { OID_ATTR_TYPE, 43 }, 7099ebb4caSwyllys OID_GenerationQualifier[] = { OID_ATTR_TYPE, 44 }, 7199ebb4caSwyllys OID_UniqueIdentifier[] = { OID_ATTR_TYPE, 45 }, 7299ebb4caSwyllys OID_DNQualifier[] = { OID_ATTR_TYPE, 46 }, 7399ebb4caSwyllys OID_EnhancedSearchGuide[] = { OID_ATTR_TYPE, 47 }, 7499ebb4caSwyllys OID_ProtocolInformation[] = { OID_ATTR_TYPE, 48 }, 7599ebb4caSwyllys OID_DistinguishedName[] = { OID_ATTR_TYPE, 49 }, 7699ebb4caSwyllys OID_UniqueMember[] = { OID_ATTR_TYPE, 50 }, 7799ebb4caSwyllys OID_HouseIdentifier[] = { OID_ATTR_TYPE, 51 } 7899ebb4caSwyllys /* OID_SupportedAlgorithms[] = { OID_ATTR_TYPE, 52 }, */ 7999ebb4caSwyllys /* OID_DeltaRevocationList[] = { OID_ATTR_TYPE, 53 }, */ 8099ebb4caSwyllys /* OID_AttributeCertificate[] = { OID_ATTR_TYPE, 58 } */ 8199ebb4caSwyllys ; 8299ebb4caSwyllys 8399ebb4caSwyllys /* From PKCS 9 */ 8499ebb4caSwyllys static uint8_t 8599ebb4caSwyllys OID_EmailAddress[] = { OID_PKCS_9, 1 }, 8699ebb4caSwyllys OID_UnstructuredName[] = { OID_PKCS_9, 2 }, 8799ebb4caSwyllys OID_ContentType[] = { OID_PKCS_9, 3 }, 8899ebb4caSwyllys OID_MessageDigest[] = { OID_PKCS_9, 4 }, 8999ebb4caSwyllys OID_SigningTime[] = { OID_PKCS_9, 5 }, 9099ebb4caSwyllys OID_CounterSignature[] = { OID_PKCS_9, 6 }, 9199ebb4caSwyllys OID_ChallengePassword[] = { OID_PKCS_9, 7 }, 9299ebb4caSwyllys OID_UnstructuredAddress[] = { OID_PKCS_9, 8 }, 9399ebb4caSwyllys OID_ExtendedCertificateAttributes[] = { OID_PKCS_9, 9 }, 9499ebb4caSwyllys OID_ExtensionRequest[] = { OID_PKCS_9, 14 }; 9599ebb4caSwyllys 9699ebb4caSwyllys /* From PKIX 1 */ 9799ebb4caSwyllys /* Standard Extensions */ 9899ebb4caSwyllys static uint8_t 9999ebb4caSwyllys OID_SubjectDirectoryAttributes[] = { OID_EXTENSION, 9 }, 10099ebb4caSwyllys OID_SubjectKeyIdentifier[] = { OID_EXTENSION, 14 }, 10199ebb4caSwyllys OID_KeyUsage[] = { OID_EXTENSION, 15 }, 10299ebb4caSwyllys OID_PrivateKeyUsagePeriod[] = { OID_EXTENSION, 16 }, 10399ebb4caSwyllys OID_SubjectAltName[] = { OID_EXTENSION, 17 }, 10499ebb4caSwyllys OID_IssuerAltName[] = { OID_EXTENSION, 18 }, 10599ebb4caSwyllys OID_BasicConstraints[] = { OID_EXTENSION, 19 }, 10699ebb4caSwyllys OID_CrlNumber[] = { OID_EXTENSION, 20 }, 10799ebb4caSwyllys OID_CrlReason[] = { OID_EXTENSION, 21 }, 10899ebb4caSwyllys OID_HoldInstructionCode[] = { OID_EXTENSION, 23 }, 10999ebb4caSwyllys OID_InvalidityDate[] = { OID_EXTENSION, 24 }, 11099ebb4caSwyllys OID_DeltaCrlIndicator[] = { OID_EXTENSION, 27 }, 11199ebb4caSwyllys OID_IssuingDistributionPoints[] = { OID_EXTENSION, 28 }, 11299ebb4caSwyllys 11399ebb4caSwyllys /* OID_CertificateIssuer[] = { OID_EXTENSION, 29 }, */ 11499ebb4caSwyllys OID_NameConstraints[] = { OID_EXTENSION, 30 }, 11599ebb4caSwyllys OID_CrlDistributionPoints[] = { OID_EXTENSION, 31 }, 11699ebb4caSwyllys OID_CertificatePolicies[] = { OID_EXTENSION, 32 }, 11799ebb4caSwyllys OID_PolicyMappings[] = { OID_EXTENSION, 33 }, 11899ebb4caSwyllys /* 34 deprecated */ 11999ebb4caSwyllys OID_AuthorityKeyIdentifier[] = { OID_EXTENSION, 35 }, 12099ebb4caSwyllys OID_PolicyConstraints[] = { OID_EXTENSION, 36 }, 12199ebb4caSwyllys OID_ExtKeyUsage[] = { OID_EXTENSION, 37 } 12299ebb4caSwyllys ; 12399ebb4caSwyllys 12499ebb4caSwyllys /* PKIX-defined extended key purpose OIDs */ 12599ebb4caSwyllys static uint8_t 12699ebb4caSwyllys OID_QT_CPSuri[] = { OID_PKIX_QT_CPS }, 12799ebb4caSwyllys OID_QT_Unotice[] = { OID_PKIX_QT_UNOTICE }, 12899ebb4caSwyllys 12999ebb4caSwyllys OID_KP_ServerAuth[] = { OID_PKIX_KP, 1 }, 13099ebb4caSwyllys OID_KP_ClientAuth[] = { OID_PKIX_KP, 2 }, 13199ebb4caSwyllys OID_KP_CodeSigning[] = { OID_PKIX_KP, 3 }, 13299ebb4caSwyllys OID_KP_EmailProtection[] = { OID_PKIX_KP, 4 }, 13399ebb4caSwyllys OID_KP_IPSecEndSystem[] = { OID_PKIX_KP, 5 }, 13499ebb4caSwyllys OID_KP_IPSecTunnel[] = { OID_PKIX_KP, 6 }, 13599ebb4caSwyllys OID_KP_IPSecUser[] = { OID_PKIX_KP, 7 }, 13699ebb4caSwyllys OID_KP_TimeStamping[] = { OID_PKIX_KP, 8 }, 13799ebb4caSwyllys OID_KP_OCSPSigning[] = { OID_PKIX_KP, 9 } 13899ebb4caSwyllys ; 13999ebb4caSwyllys 14099ebb4caSwyllys /* From PKIX 1 */ 14199ebb4caSwyllys static uint8_t 14299ebb4caSwyllys OID_AuthorityInfoAccess[] = { OID_PKIX_PE, 1}; 14399ebb4caSwyllys 14499ebb4caSwyllys const KMF_OID 14599ebb4caSwyllys KMFOID_AuthorityInfoAccess = {OID_PKIX_LENGTH + 2, OID_AuthorityInfoAccess}; 14699ebb4caSwyllys 14799ebb4caSwyllys static uint8_t 14899ebb4caSwyllys OID_PkixAdOcsp[] = {OID_PKIX_AD, 1}; 14999ebb4caSwyllys 15099ebb4caSwyllys const KMF_OID 15199ebb4caSwyllys KMFOID_PkixAdOcsp = {OID_PKIX_AD_LENGTH + 1, OID_PkixAdOcsp}; 15299ebb4caSwyllys 15399ebb4caSwyllys static uint8_t 15499ebb4caSwyllys OID_PkixAdCaIssuers[] = {OID_PKIX_AD, 2}; 15599ebb4caSwyllys 15699ebb4caSwyllys const KMF_OID 15799ebb4caSwyllys KMFOID_PkixAdCaIssuers = {OID_PKIX_AD_LENGTH + 1, OID_PkixAdCaIssuers}; 15899ebb4caSwyllys 15999ebb4caSwyllys /* 16099ebb4caSwyllys * From RFC 1274 16199ebb4caSwyllys */ 16299ebb4caSwyllys static uint8_t 16399ebb4caSwyllys OID_userid[] = {OID_PILOT, 1}, 16499ebb4caSwyllys OID_RFC822mailbox[] = {OID_PILOT, 3}, 16599ebb4caSwyllys OID_domainComponent[] = {OID_PILOT, 25}; 16699ebb4caSwyllys 16799ebb4caSwyllys const KMF_OID 16899ebb4caSwyllys KMFOID_userid = {OID_PILOT_LENGTH + 1, OID_userid}, 16999ebb4caSwyllys KMFOID_RFC822mailbox = {OID_PILOT_LENGTH + 1, OID_RFC822mailbox}, 17099ebb4caSwyllys KMFOID_domainComponent = {OID_PILOT_LENGTH + 1, OID_domainComponent}, 17199ebb4caSwyllys KMFOID_ObjectClass = {OID_ATTR_TYPE_LENGTH+1, OID_ObjectClass}, 17299ebb4caSwyllys KMFOID_AliasedEntryName = {OID_ATTR_TYPE_LENGTH+1, OID_AliasedEntryName}, 17399ebb4caSwyllys KMFOID_KnowledgeInformation = {OID_ATTR_TYPE_LENGTH+1, 17499ebb4caSwyllys OID_KnowledgeInformation}, 17599ebb4caSwyllys KMFOID_CommonName = {OID_ATTR_TYPE_LENGTH+1, OID_CommonName}, 17699ebb4caSwyllys KMFOID_Surname = {OID_ATTR_TYPE_LENGTH+1, OID_Surname}, 17799ebb4caSwyllys KMFOID_SerialNumber = {OID_ATTR_TYPE_LENGTH+1, OID_SerialNumber}, 17899ebb4caSwyllys KMFOID_CountryName = {OID_ATTR_TYPE_LENGTH+1, OID_CountryName}, 17999ebb4caSwyllys KMFOID_LocalityName = {OID_ATTR_TYPE_LENGTH+1, OID_LocalityName}, 18099ebb4caSwyllys KMFOID_StateProvinceName = {OID_ATTR_TYPE_LENGTH+1, OID_StateProvinceName}, 18199ebb4caSwyllys KMFOID_CollectiveStateProvinceName = {OID_ATTR_TYPE_LENGTH+2, 18299ebb4caSwyllys OID_CollectiveStateProvinceName}, 18399ebb4caSwyllys KMFOID_StreetAddress = {OID_ATTR_TYPE_LENGTH+1, OID_StreetAddress}, 18499ebb4caSwyllys KMFOID_CollectiveStreetAddress = {OID_ATTR_TYPE_LENGTH+2, 18599ebb4caSwyllys OID_CollectiveStreetAddress}, 18699ebb4caSwyllys KMFOID_OrganizationName = {OID_ATTR_TYPE_LENGTH+1, OID_OrganizationName}, 18799ebb4caSwyllys KMFOID_CollectiveOrganizationName = {OID_ATTR_TYPE_LENGTH+2, 18899ebb4caSwyllys OID_CollectiveOrganizationName}, 18999ebb4caSwyllys KMFOID_OrganizationalUnitName = {OID_ATTR_TYPE_LENGTH+1, 19099ebb4caSwyllys OID_OrganizationalUnitName}, 19199ebb4caSwyllys KMFOID_CollectiveOrganizationalUnitName = {OID_ATTR_TYPE_LENGTH+2, 19299ebb4caSwyllys OID_CollectiveOrganizationalUnitName}, 19399ebb4caSwyllys KMFOID_Title = {OID_ATTR_TYPE_LENGTH+1, OID_Title}, 19499ebb4caSwyllys KMFOID_Description = {OID_ATTR_TYPE_LENGTH+1, OID_Description}, 19599ebb4caSwyllys KMFOID_SearchGuide = {OID_ATTR_TYPE_LENGTH+1, OID_SearchGuide}, 19699ebb4caSwyllys KMFOID_BusinessCategory = {OID_ATTR_TYPE_LENGTH+1, OID_BusinessCategory}, 19799ebb4caSwyllys KMFOID_PostalAddress = {OID_ATTR_TYPE_LENGTH+1, OID_PostalAddress}, 19899ebb4caSwyllys KMFOID_CollectivePostalAddress = {OID_ATTR_TYPE_LENGTH+2, 19999ebb4caSwyllys OID_CollectivePostalAddress}, 20099ebb4caSwyllys KMFOID_PostalCode = {OID_ATTR_TYPE_LENGTH+1, OID_PostalCode}, 20199ebb4caSwyllys KMFOID_CollectivePostalCode = {OID_ATTR_TYPE_LENGTH+2, 20299ebb4caSwyllys OID_CollectivePostalCode}, 20399ebb4caSwyllys KMFOID_PostOfficeBox = {OID_ATTR_TYPE_LENGTH+1, OID_PostOfficeBox}, 20499ebb4caSwyllys KMFOID_CollectivePostOfficeBox = {OID_ATTR_TYPE_LENGTH+2, 20599ebb4caSwyllys OID_CollectivePostOfficeBox}, 20699ebb4caSwyllys KMFOID_PhysicalDeliveryOfficeName = {OID_ATTR_TYPE_LENGTH+1, 20799ebb4caSwyllys OID_PhysicalDeliveryOfficeName}, 20899ebb4caSwyllys KMFOID_CollectivePhysicalDeliveryOfficeName = {OID_ATTR_TYPE_LENGTH+2, 20999ebb4caSwyllys OID_CollectivePhysicalDeliveryOfficeName}, 21099ebb4caSwyllys KMFOID_TelephoneNumber = {OID_ATTR_TYPE_LENGTH+1, OID_TelephoneNumber}, 21199ebb4caSwyllys KMFOID_CollectiveTelephoneNumber = {OID_ATTR_TYPE_LENGTH+2, 21299ebb4caSwyllys OID_CollectiveTelephoneNumber}, 21399ebb4caSwyllys KMFOID_TelexNumber = {OID_ATTR_TYPE_LENGTH+1, OID_TelexNumber}, 21499ebb4caSwyllys KMFOID_CollectiveTelexNumber = {OID_ATTR_TYPE_LENGTH+2, 21599ebb4caSwyllys OID_CollectiveTelexNumber}, 21699ebb4caSwyllys KMFOID_TelexTerminalIdentifier = {OID_ATTR_TYPE_LENGTH+1, 21799ebb4caSwyllys OID_TelexTerminalIdentifier}, 21899ebb4caSwyllys KMFOID_CollectiveTelexTerminalIdentifier = {OID_ATTR_TYPE_LENGTH+2, 21999ebb4caSwyllys OID_CollectiveTelexTerminalIdentifier}, 22099ebb4caSwyllys KMFOID_FacsimileTelephoneNumber = {OID_ATTR_TYPE_LENGTH+1, 22199ebb4caSwyllys OID_FacsimileTelephoneNumber}, 22299ebb4caSwyllys KMFOID_CollectiveFacsimileTelephoneNumber = {OID_ATTR_TYPE_LENGTH+2, 22399ebb4caSwyllys OID_CollectiveFacsimileTelephoneNumber}, 22499ebb4caSwyllys KMFOID_X_121Address = {OID_ATTR_TYPE_LENGTH+1, OID_X_121Address}, 22599ebb4caSwyllys KMFOID_InternationalISDNNumber = {OID_ATTR_TYPE_LENGTH+1, 22699ebb4caSwyllys OID_InternationalISDNNumber}, 22799ebb4caSwyllys KMFOID_CollectiveInternationalISDNNumber = {OID_ATTR_TYPE_LENGTH+2, 22899ebb4caSwyllys OID_CollectiveInternationalISDNNumber}, 22999ebb4caSwyllys KMFOID_RegisteredAddress = {OID_ATTR_TYPE_LENGTH+1, OID_RegisteredAddress}, 23099ebb4caSwyllys KMFOID_DestinationIndicator = {OID_ATTR_TYPE_LENGTH+1, 23199ebb4caSwyllys OID_DestinationIndicator}, 23299ebb4caSwyllys KMFOID_PreferredDeliveryMethod = {OID_ATTR_TYPE_LENGTH+1, 23399ebb4caSwyllys OID_PreferredDeliveryMethod}, 23499ebb4caSwyllys KMFOID_PresentationAddress = {OID_ATTR_TYPE_LENGTH+1, 23599ebb4caSwyllys OID_PresentationAddress}, 23699ebb4caSwyllys KMFOID_SupportedApplicationContext = {OID_ATTR_TYPE_LENGTH+1, 23799ebb4caSwyllys OID_SupportedApplicationContext}, 23899ebb4caSwyllys KMFOID_Member = {OID_ATTR_TYPE_LENGTH+1, OID_Member}, 23999ebb4caSwyllys KMFOID_Owner = {OID_ATTR_TYPE_LENGTH+1, OID_Owner}, 24099ebb4caSwyllys KMFOID_RoleOccupant = {OID_ATTR_TYPE_LENGTH+1, OID_RoleOccupant}, 24199ebb4caSwyllys KMFOID_SeeAlso = {OID_ATTR_TYPE_LENGTH+1, OID_SeeAlso}, 24299ebb4caSwyllys KMFOID_UserPassword = {OID_ATTR_TYPE_LENGTH+1, OID_UserPassword}, 24399ebb4caSwyllys KMFOID_UserCertificate = {OID_ATTR_TYPE_LENGTH+1, OID_UserCertificate}, 24499ebb4caSwyllys KMFOID_CACertificate = {OID_ATTR_TYPE_LENGTH+1, OID_CACertificate}, 24599ebb4caSwyllys KMFOID_AuthorityRevocationList = {OID_ATTR_TYPE_LENGTH+1, 24699ebb4caSwyllys OID_AuthorityRevocationList}, 24799ebb4caSwyllys KMFOID_CertificateRevocationList = {OID_ATTR_TYPE_LENGTH+1, 24899ebb4caSwyllys OID_CertificateRevocationList}, 24999ebb4caSwyllys KMFOID_CrossCertificatePair = {OID_ATTR_TYPE_LENGTH+1, 25099ebb4caSwyllys OID_CrossCertificatePair}, 25199ebb4caSwyllys KMFOID_Name = {OID_ATTR_TYPE_LENGTH+1, OID_Name}, 25299ebb4caSwyllys KMFOID_GivenName = {OID_ATTR_TYPE_LENGTH+1, OID_GivenName}, 25399ebb4caSwyllys KMFOID_Initials = {OID_ATTR_TYPE_LENGTH+1, OID_Initials}, 25499ebb4caSwyllys KMFOID_GenerationQualifier = {OID_ATTR_TYPE_LENGTH+1, OID_GenerationQualifier}, 25599ebb4caSwyllys KMFOID_UniqueIdentifier = {OID_ATTR_TYPE_LENGTH+1, OID_UniqueIdentifier}, 25699ebb4caSwyllys KMFOID_DNQualifier = {OID_ATTR_TYPE_LENGTH+1, OID_DNQualifier}, 25799ebb4caSwyllys KMFOID_EnhancedSearchGuide = {OID_ATTR_TYPE_LENGTH+1, OID_EnhancedSearchGuide}, 25899ebb4caSwyllys KMFOID_ProtocolInformation = {OID_ATTR_TYPE_LENGTH+1, OID_ProtocolInformation}, 25999ebb4caSwyllys KMFOID_DistinguishedName = {OID_ATTR_TYPE_LENGTH+1, OID_DistinguishedName}, 26099ebb4caSwyllys KMFOID_UniqueMember = {OID_ATTR_TYPE_LENGTH+1, OID_UniqueMember}, 26199ebb4caSwyllys KMFOID_HouseIdentifier = {OID_ATTR_TYPE_LENGTH+1, OID_HouseIdentifier}, 26299ebb4caSwyllys KMFOID_EmailAddress = {OID_PKCS_9_LENGTH+1, OID_EmailAddress}, 26399ebb4caSwyllys KMFOID_UnstructuredName = {OID_PKCS_9_LENGTH+1, OID_UnstructuredName}, 26499ebb4caSwyllys KMFOID_ContentType = {OID_PKCS_9_LENGTH+1, OID_ContentType}, 26599ebb4caSwyllys KMFOID_MessageDigest = {OID_PKCS_9_LENGTH+1, OID_MessageDigest}, 26699ebb4caSwyllys KMFOID_SigningTime = {OID_PKCS_9_LENGTH+1, OID_SigningTime}, 26799ebb4caSwyllys KMFOID_CounterSignature = {OID_PKCS_9_LENGTH+1, OID_CounterSignature}, 26899ebb4caSwyllys KMFOID_ChallengePassword = {OID_PKCS_9_LENGTH+1, OID_ChallengePassword}, 26999ebb4caSwyllys KMFOID_UnstructuredAddress = {OID_PKCS_9_LENGTH+1, OID_UnstructuredAddress}, 27099ebb4caSwyllys KMFOID_ExtendedCertificateAttributes = {OID_PKCS_9_LENGTH+1, 27199ebb4caSwyllys OID_ExtendedCertificateAttributes}, 27299ebb4caSwyllys KMFOID_ExtensionRequest = {OID_PKCS_9_LENGTH + 1, OID_ExtensionRequest}; 27399ebb4caSwyllys 27499ebb4caSwyllys static uint8_t 27599ebb4caSwyllys OID_AuthorityKeyID[] = { OID_EXTENSION, 1 }, 27699ebb4caSwyllys OID_VerisignCertificatePolicy[] = { OID_EXTENSION, 3 }, 27799ebb4caSwyllys OID_KeyUsageRestriction[] = { OID_EXTENSION, 4 }; 27899ebb4caSwyllys 27999ebb4caSwyllys const KMF_OID 28099ebb4caSwyllys KMFOID_AuthorityKeyID = {OID_EXTENSION_LENGTH+1, OID_AuthorityKeyID}, 28199ebb4caSwyllys 28299ebb4caSwyllys KMFOID_VerisignCertificatePolicy = {OID_EXTENSION_LENGTH+1, 28399ebb4caSwyllys OID_VerisignCertificatePolicy}, 28499ebb4caSwyllys 28599ebb4caSwyllys KMFOID_KeyUsageRestriction = {OID_EXTENSION_LENGTH+1, 28699ebb4caSwyllys OID_KeyUsageRestriction}, 28799ebb4caSwyllys 28899ebb4caSwyllys KMFOID_SubjectDirectoryAttributes = {OID_EXTENSION_LENGTH+1, 28999ebb4caSwyllys OID_SubjectDirectoryAttributes}, 29099ebb4caSwyllys 29199ebb4caSwyllys KMFOID_SubjectKeyIdentifier = {OID_EXTENSION_LENGTH+1, 29299ebb4caSwyllys OID_SubjectKeyIdentifier }, 29399ebb4caSwyllys KMFOID_KeyUsage = {OID_EXTENSION_LENGTH+1, OID_KeyUsage }, 29499ebb4caSwyllys 29599ebb4caSwyllys KMFOID_PrivateKeyUsagePeriod = {OID_EXTENSION_LENGTH+1, 29699ebb4caSwyllys OID_PrivateKeyUsagePeriod}, 29799ebb4caSwyllys KMFOID_SubjectAltName = {OID_EXTENSION_LENGTH+1, OID_SubjectAltName }, 29899ebb4caSwyllys KMFOID_IssuerAltName = {OID_EXTENSION_LENGTH+1, OID_IssuerAltName }, 29999ebb4caSwyllys KMFOID_BasicConstraints = {OID_EXTENSION_LENGTH+1, OID_BasicConstraints }, 30099ebb4caSwyllys 30199ebb4caSwyllys KMFOID_CrlNumber = {OID_EXTENSION_LENGTH+1, OID_CrlNumber}, 30299ebb4caSwyllys 30399ebb4caSwyllys KMFOID_CrlReason = {OID_EXTENSION_LENGTH+1, OID_CrlReason}, 30499ebb4caSwyllys 30599ebb4caSwyllys KMFOID_HoldInstructionCode = {OID_EXTENSION_LENGTH+1, OID_HoldInstructionCode}, 30699ebb4caSwyllys 30799ebb4caSwyllys KMFOID_InvalidityDate = {OID_EXTENSION_LENGTH+1, OID_InvalidityDate}, 30899ebb4caSwyllys 30999ebb4caSwyllys KMFOID_DeltaCrlIndicator = {OID_EXTENSION_LENGTH+1, OID_DeltaCrlIndicator}, 31099ebb4caSwyllys 31199ebb4caSwyllys KMFOID_IssuingDistributionPoints = {OID_EXTENSION_LENGTH+1, 31299ebb4caSwyllys OID_IssuingDistributionPoints}, 31399ebb4caSwyllys 31499ebb4caSwyllys KMFOID_NameConstraints = {OID_EXTENSION_LENGTH+1, 31599ebb4caSwyllys OID_NameConstraints}, 31699ebb4caSwyllys 31799ebb4caSwyllys KMFOID_CrlDistributionPoints = {OID_EXTENSION_LENGTH+1, 31899ebb4caSwyllys OID_CrlDistributionPoints}, 31999ebb4caSwyllys 32099ebb4caSwyllys KMFOID_CertificatePolicies = {OID_EXTENSION_LENGTH+1, 32199ebb4caSwyllys OID_CertificatePolicies}, 32299ebb4caSwyllys 32399ebb4caSwyllys KMFOID_PolicyMappings = {OID_EXTENSION_LENGTH+1, OID_PolicyMappings}, 32499ebb4caSwyllys 32599ebb4caSwyllys KMFOID_PolicyConstraints = {OID_EXTENSION_LENGTH+1, OID_PolicyConstraints}, 32699ebb4caSwyllys 32799ebb4caSwyllys KMFOID_AuthorityKeyIdentifier = {OID_EXTENSION_LENGTH+1, 32899ebb4caSwyllys OID_AuthorityKeyIdentifier}, 32999ebb4caSwyllys 33099ebb4caSwyllys KMFOID_ExtendedKeyUsage = {OID_EXTENSION_LENGTH+1, OID_ExtKeyUsage}, 33199ebb4caSwyllys 33299ebb4caSwyllys KMFOID_PKIX_PQ_CPSuri = {OID_PKIX_QT_CPS_LENGTH, OID_QT_CPSuri}, 33399ebb4caSwyllys 33499ebb4caSwyllys KMFOID_PKIX_PQ_Unotice = {OID_PKIX_QT_UNOTICE_LENGTH, OID_QT_Unotice}, 33599ebb4caSwyllys 33699ebb4caSwyllys /* Extended Key Usage OIDs */ 33799ebb4caSwyllys KMFOID_PKIX_KP_ServerAuth = {OID_PKIX_KP_LENGTH + 1, OID_KP_ServerAuth}, 33899ebb4caSwyllys 33999ebb4caSwyllys KMFOID_PKIX_KP_ClientAuth = {OID_PKIX_KP_LENGTH + 1, OID_KP_ClientAuth}, 34099ebb4caSwyllys 34199ebb4caSwyllys KMFOID_PKIX_KP_CodeSigning = {OID_PKIX_KP_LENGTH + 1, OID_KP_CodeSigning}, 34299ebb4caSwyllys 34399ebb4caSwyllys KMFOID_PKIX_KP_EmailProtection = {OID_PKIX_KP_LENGTH + 1, 34499ebb4caSwyllys OID_KP_EmailProtection}, 34599ebb4caSwyllys 34699ebb4caSwyllys KMFOID_PKIX_KP_IPSecEndSystem = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecEndSystem}, 34799ebb4caSwyllys 34899ebb4caSwyllys KMFOID_PKIX_KP_IPSecTunnel = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecTunnel}, 34999ebb4caSwyllys 35099ebb4caSwyllys KMFOID_PKIX_KP_IPSecUser = {OID_PKIX_KP_LENGTH + 1, OID_KP_IPSecUser}, 35199ebb4caSwyllys 35299ebb4caSwyllys KMFOID_PKIX_KP_TimeStamping = {OID_PKIX_KP_LENGTH + 1, OID_KP_TimeStamping}, 35399ebb4caSwyllys 35499ebb4caSwyllys KMFOID_PKIX_KP_OCSPSigning = {OID_PKIX_KP_LENGTH + 1, OID_KP_OCSPSigning}; 35502744e81Swyllys 35602744e81Swyllys static uint8_t 35702744e81Swyllys OID_OIW_SHA1[] = { OID_OIW_ALGORITHM, 26}, 35802744e81Swyllys OID_OIW_DSA[] = { OID_OIW_ALGORITHM, 12 }, 359448b8615Swyllys OID_OIW_DSAWithSHA1[] = { OID_OIW_ALGORITHM, 13 }, 36002744e81Swyllys OID_RSAEncryption[] = { OID_PKCS_1, 1 }, 36102744e81Swyllys OID_MD2WithRSA[] = { OID_PKCS_1, 2 }, 36202744e81Swyllys OID_MD5WithRSA[] = { OID_PKCS_1, 4 }, 36302744e81Swyllys OID_SHA1WithRSA[] = { OID_PKCS_1, 5 }, 364*e65e5c2dSWyllys Ingersoll OID_SHA256WithRSA[] = { OID_PKCS_1, 11 }, 365*e65e5c2dSWyllys Ingersoll OID_SHA384WithRSA[] = { OID_PKCS_1, 12 }, 366*e65e5c2dSWyllys Ingersoll OID_SHA512WithRSA[] = { OID_PKCS_1, 13 }, 36702744e81Swyllys OID_X9CM_DSA[] = { OID_X9CM_X9ALGORITHM, 1 }, 36802744e81Swyllys OID_X9CM_DSAWithSHA1[] = { OID_X9CM_X9ALGORITHM, 3}; 36902744e81Swyllys 37002744e81Swyllys const KMF_OID 37102744e81Swyllys KMFOID_SHA1 = {OID_OIW_ALGORITHM_LENGTH+1, OID_OIW_SHA1}, 37202744e81Swyllys KMFOID_RSA = {OID_PKCS_1_LENGTH+1, OID_RSAEncryption}, 37302744e81Swyllys KMFOID_DSA = {OID_OIW_ALGORITHM_LENGTH+1, OID_OIW_DSA}, 37402744e81Swyllys KMFOID_MD5WithRSA = {OID_PKCS_1_LENGTH+1, OID_MD5WithRSA}, 37502744e81Swyllys KMFOID_MD2WithRSA = {OID_PKCS_1_LENGTH+1, OID_MD2WithRSA}, 37602744e81Swyllys KMFOID_SHA1WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA1WithRSA}, 377*e65e5c2dSWyllys Ingersoll KMFOID_SHA256WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA256WithRSA}, 378*e65e5c2dSWyllys Ingersoll KMFOID_SHA384WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA384WithRSA}, 379*e65e5c2dSWyllys Ingersoll KMFOID_SHA512WithRSA = {OID_PKCS_1_LENGTH+1, OID_SHA512WithRSA}, 38002744e81Swyllys KMFOID_SHA1WithDSA = {OID_OIW_ALGORITHM_LENGTH+1, OID_OIW_DSAWithSHA1}, 38102744e81Swyllys KMFOID_X9CM_DSA = {OID_X9CM_X9ALGORITHM_LENGTH+1, OID_X9CM_DSA}, 38202744e81Swyllys KMFOID_X9CM_DSAWithSHA1 = {OID_X9CM_X9ALGORITHM_LENGTH+1, 38302744e81Swyllys OID_X9CM_DSAWithSHA1}; 384d00756ccSwyllys 385d00756ccSwyllys /* 386d00756ccSwyllys * New for PKINIT support. 387d00756ccSwyllys */ 388d00756ccSwyllys static uint8_t 389d00756ccSwyllys OID_pkinit_san[] = { OID_KRB5_SAN }, 390d00756ccSwyllys OID_pkinit_san_upn[] = { OID_MS_KP_SC_LOGON_UPN }, 391d00756ccSwyllys OID_pkinit_kp_clientauth[] = { OID_KRB5_PKINIT_KPCLIENTAUTH }, 392d00756ccSwyllys OID_pkinit_kp_kdc[] = { OID_KRB5_PKINIT_KPKDC }, 393d00756ccSwyllys OID_pkinit_kp_sc_logon[] = { OID_MS_KP_SC_LOGON }; 394d00756ccSwyllys 395d00756ccSwyllys const KMF_OID 396d00756ccSwyllys KMFOID_PKINIT_san = {OID_KRB5_SAN_LENGTH, OID_pkinit_san }, 397d00756ccSwyllys KMFOID_PKINIT_ClientAuth = {OID_KRB5_PKINIT_KPCLIENTAUTH_LENGTH, 398d00756ccSwyllys OID_pkinit_kp_clientauth}, 399d00756ccSwyllys KMFOID_PKINIT_Kdc = {OID_KRB5_PKINIT_KPKDC_LENGTH, 400d00756ccSwyllys OID_pkinit_kp_kdc}, 401d00756ccSwyllys KMFOID_MS_KP_SCLogon = {OID_MS_KP_SC_LOGON_LENGTH, 402d00756ccSwyllys OID_pkinit_kp_sc_logon}, 403d00756ccSwyllys KMFOID_MS_KP_SCLogon_UPN = {OID_MS_KP_SC_LOGON_UPN_LENGTH, 404d00756ccSwyllys OID_pkinit_san_upn}; 405*e65e5c2dSWyllys Ingersoll 406*e65e5c2dSWyllys Ingersoll /* 407*e65e5c2dSWyllys Ingersoll * MD5 408*e65e5c2dSWyllys Ingersoll * iso(1) member-body(2) us(840) rsadsi(113549) 409*e65e5c2dSWyllys Ingersoll * digestAlgorithm(2) 5 410*e65e5c2dSWyllys Ingersoll */ 411*e65e5c2dSWyllys Ingersoll #define RSADSI 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d 412*e65e5c2dSWyllys Ingersoll #define OID_id_md5 RSADSI, 0x02, 0x05 413*e65e5c2dSWyllys Ingersoll 414*e65e5c2dSWyllys Ingersoll /* 415*e65e5c2dSWyllys Ingersoll * SHA2 OIDs 416*e65e5c2dSWyllys Ingersoll */ 417*e65e5c2dSWyllys Ingersoll #define NIST_ALG 96, 134, 72, 1, 101, 3, 4 418*e65e5c2dSWyllys Ingersoll #define NIST_HASH NIST_ALG, 2 419*e65e5c2dSWyllys Ingersoll #define OID_id_sha256 NIST_HASH, 1 420*e65e5c2dSWyllys Ingersoll #define OID_id_sha384 NIST_HASH, 2 421*e65e5c2dSWyllys Ingersoll #define OID_id_sha512 NIST_HASH, 3 422*e65e5c2dSWyllys Ingersoll #define OID_id_sha224 NIST_HASH, 4 423*e65e5c2dSWyllys Ingersoll 424*e65e5c2dSWyllys Ingersoll #define OID_id_dsa_with_sha224 NIST_ALG, 3, 1 425*e65e5c2dSWyllys Ingersoll #define OID_id_dsa_with_sha256 NIST_ALG, 3, 2 426*e65e5c2dSWyllys Ingersoll 427*e65e5c2dSWyllys Ingersoll /* 428*e65e5c2dSWyllys Ingersoll * For ECC support. 429*e65e5c2dSWyllys Ingersoll */ 430*e65e5c2dSWyllys Ingersoll #define CERTICOM_OID 0x2b, 0x81, 0x04 431*e65e5c2dSWyllys Ingersoll #define SECG_OID CERTICOM_OID, 0x00 432*e65e5c2dSWyllys Ingersoll 433*e65e5c2dSWyllys Ingersoll #define ANSI_X962_OID 0x2a, 0x86, 0x48, 0xce, 0x3d 434*e65e5c2dSWyllys Ingersoll #define ANSI_X962_CURVE_OID ANSI_X962_OID, 0x03 435*e65e5c2dSWyllys Ingersoll #define ANSI_X962_GF2m_OID ANSI_X962_CURVE_OID, 0x00 436*e65e5c2dSWyllys Ingersoll #define ANSI_X962_GFp_OID ANSI_X962_CURVE_OID, 0x01 437*e65e5c2dSWyllys Ingersoll 438*e65e5c2dSWyllys Ingersoll #define ANSI_X962_SIG_OID ANSI_X962_OID, 0x04 439*e65e5c2dSWyllys Ingersoll #define OID_ecdsa_with_sha224 ANSI_X962_SIG_OID, 3, 1 440*e65e5c2dSWyllys Ingersoll #define OID_ecdsa_with_sha256 ANSI_X962_SIG_OID, 3, 2 441*e65e5c2dSWyllys Ingersoll #define OID_ecdsa_with_sha384 ANSI_X962_SIG_OID, 3, 3 442*e65e5c2dSWyllys Ingersoll #define OID_ecdsa_with_sha512 ANSI_X962_SIG_OID, 3, 4 443*e65e5c2dSWyllys Ingersoll 444*e65e5c2dSWyllys Ingersoll static uint8_t 445*e65e5c2dSWyllys Ingersoll OID_secp112r1[] = { 0x6, 0x5, SECG_OID, 0x06 }, 446*e65e5c2dSWyllys Ingersoll OID_secp112r2[] = { 0x6, 0x5, SECG_OID, 0x07 }, 447*e65e5c2dSWyllys Ingersoll OID_secp128r1[] = { 0x6, 0x5, SECG_OID, 0x1c }, 448*e65e5c2dSWyllys Ingersoll OID_secp128r2[] = { 0x6, 0x5, SECG_OID, 0x1d }, 449*e65e5c2dSWyllys Ingersoll OID_secp160k1[] = { 0x6, 0x5, SECG_OID, 0x09 }, 450*e65e5c2dSWyllys Ingersoll OID_secp160r1[] = { 0x6, 0x5, SECG_OID, 0x08 }, 451*e65e5c2dSWyllys Ingersoll OID_secp160r2[] = { 0x6, 0x5, SECG_OID, 0x1e }, 452*e65e5c2dSWyllys Ingersoll OID_secp192k1[] = { 0x6, 0x5, SECG_OID, 0x1f }, 453*e65e5c2dSWyllys Ingersoll OID_secp224k1[] = { 0x6, 0x5, SECG_OID, 0x20 }, 454*e65e5c2dSWyllys Ingersoll OID_secp224r1[] = { 0x6, 0x5, SECG_OID, 0x21 }, 455*e65e5c2dSWyllys Ingersoll OID_secp256k1[] = { 0x6, 0x5, SECG_OID, 0x0a }, 456*e65e5c2dSWyllys Ingersoll OID_secp384r1[] = { 0x6, 0x5, SECG_OID, 0x22 }, 457*e65e5c2dSWyllys Ingersoll OID_secp521r1[] = { 0x6, 0x5, SECG_OID, 0x23 }, 458*e65e5c2dSWyllys Ingersoll OID_sect113r1[] = { 0x6, 0x5, SECG_OID, 0x04 }, 459*e65e5c2dSWyllys Ingersoll OID_sect113r2[] = { 0x6, 0x5, SECG_OID, 0x05 }, 460*e65e5c2dSWyllys Ingersoll OID_sect131r1[] = { 0x6, 0x5, SECG_OID, 0x16 }, 461*e65e5c2dSWyllys Ingersoll OID_sect131r2[] = { 0x6, 0x5, SECG_OID, 0x17 }, 462*e65e5c2dSWyllys Ingersoll OID_sect163k1[] = { 0x6, 0x5, SECG_OID, 0x01 }, 463*e65e5c2dSWyllys Ingersoll OID_sect163r1[] = { 0x6, 0x5, SECG_OID, 0x02 }, 464*e65e5c2dSWyllys Ingersoll OID_sect163r2[] = { 0x6, 0x5, SECG_OID, 0x0f }, 465*e65e5c2dSWyllys Ingersoll OID_sect193r1[] = { 0x6, 0x5, SECG_OID, 0x18 }, 466*e65e5c2dSWyllys Ingersoll OID_sect193r2[] = { 0x6, 0x5, SECG_OID, 0x19 }, 467*e65e5c2dSWyllys Ingersoll OID_sect233k1[] = { 0x6, 0x5, SECG_OID, 0x1a }, 468*e65e5c2dSWyllys Ingersoll OID_sect233r1[] = { 0x6, 0x5, SECG_OID, 0x1b }, 469*e65e5c2dSWyllys Ingersoll OID_sect239k1[] = { 0x6, 0x5, SECG_OID, 0x03 }, 470*e65e5c2dSWyllys Ingersoll OID_sect283k1[] = { 0x6, 0x5, SECG_OID, 0x10 }, 471*e65e5c2dSWyllys Ingersoll OID_sect283r1[] = { 0x6, 0x5, SECG_OID, 0x11 }, 472*e65e5c2dSWyllys Ingersoll OID_sect409k1[] = { 0x6, 0x5, SECG_OID, 0x24 }, 473*e65e5c2dSWyllys Ingersoll OID_sect409r1[] = { 0x6, 0x5, SECG_OID, 0x25 }, 474*e65e5c2dSWyllys Ingersoll OID_sect571k1[] = { 0x6, 0x5, SECG_OID, 0x26 }, 475*e65e5c2dSWyllys Ingersoll OID_sect571r1[] = { 0x6, 0x5, SECG_OID, 0x27 }, 476*e65e5c2dSWyllys Ingersoll OID_c2pnb163v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x01 }, 477*e65e5c2dSWyllys Ingersoll OID_c2pnb163v2[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x02 }, 478*e65e5c2dSWyllys Ingersoll OID_c2pnb163v3[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x03 }, 479*e65e5c2dSWyllys Ingersoll OID_c2pnb176v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x04 }, 480*e65e5c2dSWyllys Ingersoll OID_c2tnb191v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x05 }, 481*e65e5c2dSWyllys Ingersoll OID_c2tnb191v2[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x06 }, 482*e65e5c2dSWyllys Ingersoll OID_c2tnb191v3[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x07 }, 483*e65e5c2dSWyllys Ingersoll OID_c2pnb208w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0a }, 484*e65e5c2dSWyllys Ingersoll OID_c2tnb239v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0b }, 485*e65e5c2dSWyllys Ingersoll OID_c2tnb239v2[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0c }, 486*e65e5c2dSWyllys Ingersoll OID_c2tnb239v3[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x0d }, 487*e65e5c2dSWyllys Ingersoll OID_c2pnb272w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x10 }, 488*e65e5c2dSWyllys Ingersoll OID_c2pnb304w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x11 }, 489*e65e5c2dSWyllys Ingersoll OID_c2tnb359v1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x12 }, 490*e65e5c2dSWyllys Ingersoll OID_c2pnb368w1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x13 }, 491*e65e5c2dSWyllys Ingersoll OID_c2tnb431r1[] = { 0x6, 0x8, ANSI_X962_GF2m_OID, 0x14 }, 492*e65e5c2dSWyllys Ingersoll 493*e65e5c2dSWyllys Ingersoll OID_prime192v2[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x02 }, 494*e65e5c2dSWyllys Ingersoll OID_prime192v3[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x03 }, 495*e65e5c2dSWyllys Ingersoll 496*e65e5c2dSWyllys Ingersoll OID_secp192r1[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x01 }, 497*e65e5c2dSWyllys Ingersoll OID_secp256r1[] = { 0x6, 0x8, ANSI_X962_GFp_OID, 0x07 }; 498*e65e5c2dSWyllys Ingersoll 499*e65e5c2dSWyllys Ingersoll const KMF_OID 500*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp112r1 = {sizeof (OID_secp112r1), OID_secp112r1}, 501*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp112r2 = {sizeof (OID_secp112r2), OID_secp112r2}, 502*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp128r1 = {sizeof (OID_secp128r1), OID_secp128r1}, 503*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp128r2 = {sizeof (OID_secp128r2), OID_secp128r2}, 504*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp160k1 = {sizeof (OID_secp160k1), OID_secp160k1}, 505*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp160r1 = {sizeof (OID_secp160r1), OID_secp160r1}, 506*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp160r2 = {sizeof (OID_secp160r2), OID_secp160r2}, 507*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp192k1 = {sizeof (OID_secp192k1), OID_secp192k1}, 508*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp224k1 = {sizeof (OID_secp224k1), OID_secp224k1}, 509*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp224r1 = {sizeof (OID_secp224r1), OID_secp224r1}, 510*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp256k1 = {sizeof (OID_secp256k1), OID_secp256k1}, 511*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp384r1 = {sizeof (OID_secp384r1), OID_secp384r1}, 512*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp521r1 = {sizeof (OID_secp521r1), OID_secp521r1}, 513*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect113r1 = {sizeof (OID_sect113r1), OID_sect113r1}, 514*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect113r2 = {sizeof (OID_sect113r2), OID_sect113r2}, 515*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect131r1 = {sizeof (OID_sect131r1), OID_sect131r1}, 516*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect131r2 = {sizeof (OID_sect131r2), OID_sect131r2}, 517*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect163k1 = {sizeof (OID_sect163k1), OID_sect163k1}, 518*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect163r1 = {sizeof (OID_sect163r1), OID_sect163r1}, 519*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect163r2 = {sizeof (OID_sect163r2), OID_sect163r2}, 520*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect193r1 = {sizeof (OID_sect193r1), OID_sect193r1}, 521*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect193r2 = {sizeof (OID_sect193r2), OID_sect193r2}, 522*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect233k1 = {sizeof (OID_sect233k1), OID_sect233k1}, 523*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect233r1 = {sizeof (OID_sect233r1), OID_sect233r1}, 524*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect239k1 = {sizeof (OID_sect239k1), OID_sect239k1}, 525*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect283k1 = {sizeof (OID_sect283k1), OID_sect283k1}, 526*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect283r1 = {sizeof (OID_sect283r1), OID_sect283r1}, 527*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect409k1 = {sizeof (OID_sect409k1), OID_sect409k1}, 528*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect409r1 = {sizeof (OID_sect409r1), OID_sect409r1}, 529*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect571k1 = {sizeof (OID_sect571k1), OID_sect571k1}, 530*e65e5c2dSWyllys Ingersoll KMFOID_ECC_sect571r1 = {sizeof (OID_sect571r1), OID_sect571r1}, 531*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb163v1 = {sizeof (OID_c2pnb163v1), OID_c2pnb163v1}, 532*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb163v2 = {sizeof (OID_c2pnb163v2), OID_c2pnb163v2}, 533*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb163v3 = {sizeof (OID_c2pnb163v3), OID_c2pnb163v3}, 534*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb176v1 = {sizeof (OID_c2pnb176v1), OID_c2pnb176v1}, 535*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb191v1 = {sizeof (OID_c2tnb191v1), OID_c2tnb191v1}, 536*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb191v2 = {sizeof (OID_c2tnb191v2), OID_c2tnb191v2}, 537*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb191v3 = {sizeof (OID_c2tnb191v3), OID_c2tnb191v3}, 538*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb208w1 = {sizeof (OID_c2pnb208w1), OID_c2pnb208w1}, 539*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb239v1 = {sizeof (OID_c2tnb239v1), OID_c2tnb239v1}, 540*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb239v2 = {sizeof (OID_c2tnb239v2), OID_c2tnb239v2}, 541*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb239v3 = {sizeof (OID_c2tnb239v3), OID_c2tnb239v3}, 542*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb272w1 = {sizeof (OID_c2pnb272w1), OID_c2pnb272w1}, 543*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb304w1 = {sizeof (OID_c2pnb304w1), OID_c2pnb304w1}, 544*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb359v1 = {sizeof (OID_c2tnb359v1), OID_c2tnb359v1}, 545*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2pnb368w1 = {sizeof (OID_c2pnb368w1), OID_c2pnb368w1}, 546*e65e5c2dSWyllys Ingersoll KMFOID_ECC_c2tnb431r1 = {sizeof (OID_c2tnb431r1), OID_c2tnb431r1}, 547*e65e5c2dSWyllys Ingersoll KMFOID_ECC_prime192v2 = {sizeof (OID_prime192v2), OID_prime192v2}, 548*e65e5c2dSWyllys Ingersoll KMFOID_ECC_prime192v3 = {sizeof (OID_prime192v3), OID_prime192v3}, 549*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp192r1 = {sizeof (OID_secp192r1), OID_secp192r1}, 550*e65e5c2dSWyllys Ingersoll KMFOID_ECC_secp256r1 = {sizeof (OID_secp256r1), OID_secp256r1}; 551*e65e5c2dSWyllys Ingersoll 552*e65e5c2dSWyllys Ingersoll static uint8_t 553*e65e5c2dSWyllys Ingersoll OID_EC_PUBLIC_KEY[] = {ANSI_X962_OID, 0x02, 0x01}, 554*e65e5c2dSWyllys Ingersoll OID_ECDSA_SHA1[] = {ANSI_X962_OID, 0x04, 0x01}, 555*e65e5c2dSWyllys Ingersoll OID_ECDSA_SHA224[] = {ANSI_X962_OID, 0x04, 0x03, 0x01}, 556*e65e5c2dSWyllys Ingersoll OID_ECDSA_SHA256[] = {ANSI_X962_OID, 0x04, 0x03, 0x02}, 557*e65e5c2dSWyllys Ingersoll OID_ECDSA_SHA384[] = {ANSI_X962_OID, 0x04, 0x03, 0x03}, 558*e65e5c2dSWyllys Ingersoll OID_ECDSA_SHA512[] = {ANSI_X962_OID, 0x04, 0x03, 0x04}, 559*e65e5c2dSWyllys Ingersoll OID_DSA_SHA224[] = {OID_id_dsa_with_sha224}, 560*e65e5c2dSWyllys Ingersoll OID_DSA_SHA256[] = {OID_id_dsa_with_sha256}, 561*e65e5c2dSWyllys Ingersoll OID_SHA224[] = {OID_id_sha224}, 562*e65e5c2dSWyllys Ingersoll OID_SHA256[] = {OID_id_sha256}, 563*e65e5c2dSWyllys Ingersoll OID_SHA384[] = {OID_id_sha384}, 564*e65e5c2dSWyllys Ingersoll OID_SHA512[] = {OID_id_sha512}, 565*e65e5c2dSWyllys Ingersoll OID_MD5[] = {OID_id_md5}; 566*e65e5c2dSWyllys Ingersoll 567*e65e5c2dSWyllys Ingersoll const KMF_OID 568*e65e5c2dSWyllys Ingersoll KMFOID_EC_PUBLIC_KEY = { sizeof (OID_EC_PUBLIC_KEY), OID_EC_PUBLIC_KEY}, 569*e65e5c2dSWyllys Ingersoll KMFOID_SHA1WithECDSA = { sizeof (OID_ECDSA_SHA1), OID_ECDSA_SHA1}, 570*e65e5c2dSWyllys Ingersoll KMFOID_SHA224WithECDSA = { sizeof (OID_ECDSA_SHA224), OID_ECDSA_SHA224}, 571*e65e5c2dSWyllys Ingersoll KMFOID_SHA256WithECDSA = { sizeof (OID_ECDSA_SHA256), OID_ECDSA_SHA256}, 572*e65e5c2dSWyllys Ingersoll KMFOID_SHA384WithECDSA = { sizeof (OID_ECDSA_SHA384), OID_ECDSA_SHA384}, 573*e65e5c2dSWyllys Ingersoll KMFOID_SHA512WithECDSA = { sizeof (OID_ECDSA_SHA512), OID_ECDSA_SHA512}, 574*e65e5c2dSWyllys Ingersoll KMFOID_SHA224WithDSA = { sizeof (OID_DSA_SHA224), OID_DSA_SHA224}, 575*e65e5c2dSWyllys Ingersoll KMFOID_SHA256WithDSA = { sizeof (OID_DSA_SHA256), OID_DSA_SHA256}, 576*e65e5c2dSWyllys Ingersoll KMFOID_SHA224 = { sizeof (OID_SHA224), OID_SHA224}, 577*e65e5c2dSWyllys Ingersoll KMFOID_SHA256 = { sizeof (OID_SHA256), OID_SHA256}, 578*e65e5c2dSWyllys Ingersoll KMFOID_SHA384 = { sizeof (OID_SHA384), OID_SHA384}, 579*e65e5c2dSWyllys Ingersoll KMFOID_SHA512 = { sizeof (OID_SHA512), OID_SHA512}, 580*e65e5c2dSWyllys Ingersoll KMFOID_MD5 = { sizeof (OID_MD5), OID_MD5}; 581