📄 draft-ietf-pkix-ldap-pki-schema-00.txt
字号:
4. Public Key Certificate Matching Rules and Assertion SyntaxesX.509 [9] supports both equality and flexible certificate matching rules by the server, via the certificateExactMatch and certificateMatch MATCHING-RULEs respectively. (For example, a client may flexibly search for certificates with a particular validity time, key usage, policy or other field.) LDAP servers MUST support the certificateExactMatch matching rule. Clients MAY support certificateExactMatch values for equalityMatch filters. LDAPv3 servers SHOULD support the certificateMatch matching rule. If the server does support flexible matching (either via certificateMatch or some other matching rule), then the extensibleMatch filter of the Search request MUST be supported. Clients MAY support the extensibleMatch filter and one or more of the optional elements of certificateMatch.The LDAP-specific (i.e. string) encodings for the assertion syntaxes defined in this document are specified by the Generic String Encoding Rules (GSER) [13]. The ABNF in this document for these assertion syntaxes is provided only as a convenience and is equivalent to the encoding specified by the application of [13]. (The only exception to this is the alternative simple endoding for certificatExactMatch.) Since the associated ASN.1 types for the assertion syntaxes described here may be extended in future editions of X.509 [9], the provided ABNF should be regarded as a snapshot in time. The LDAP-specific encoding for any extension to a syntax's underlying ASN.1 type can be determined from [13]. In the event that there is a discrepancy between the ABNF in this document and the encoding determined by [13], [13] is to be taken as definitive. 4.1 Certificate Exact MatchCertificate exact match is defined in 11.3.1 of [9]. The string description of the certificateExactMatch matching rule is: ( 2.5.13.34 NAME 'certificateExactMatch' SYNTAX 1.2.826.0.1.3344810.7.1 )The LDAP syntax definition of the above is: (1.2.826.0.1.3344810.7.1 DESC 'Certificate Serial Number and Issuer Name' )The LDAP-specific encoding of an assertion value of this syntax is a choice between - the GSER encoding defined by [13]<GSERCertificateExactAssertion> and - the simple encoding defined by <SimpleCertificateExactAssertion>. The full syntax is described by the following Augmented BNF [10]:CertificateExactAssertion = GSERCertificateExactAssertion / SimpleCertificateExactAssertionSimpleCertificateExactAssertion = CertificateSerialNumber "$" LDAPDN<LDAPDN> is a string encoding of a distinguished name as defined in [6].GSERCertificateExactAssertion = "{" sp cea-serialNumber "," sp cea-issuer sp "}"cea-serialNumber = id-serialNumber msp CertificateSerialNumbercea-issuer = id-issuer msp Nameid-serialNumber = %x73.65.72.69.61.6C.4E.75.6D.62.65.72 ; "serialNumber"id-issuer = %x69.73.73.75.65.72 ; "issuer"Name = id-rdnSequence ":" RDNSequenceid-rdnSequence = %x72.64.6E.53.65.71.75.65.6E.63.65 ; "rdnSequence"CertificateSerialNumber = INTEGERNote. [14] states that CAs MUST force the serialNumber to be a non-negative integer. Non-conforming CAs MAY issue certificates with serial numbers that are negative, or zero. Certificate users SHOULD be prepared to handle such certificates.The <sp>, <msp>, <RDNSequence> and <INTEGER> rules are given in [16]. 4.2 Certificate MatchCertificate match is defined in 11.3.2 of [9]. The string descriptionof the certificateMatch matching rule is:( 2.5.13.35 NAME 'certificateMatch' SYNTAX 1.2.826.0.1.3344810.7.2)The syntax definition is:(1.2.826.0.1.3344810.7.2 DESC 'Certificate Assertion' )The ASN.1 for CertificateAssertion is defined in 11.3.2 of [9], asare the semantics of each of its component types.The LDAP-specific encoding of an assertion value of this syntax is defined by [13] and described by the following ABNF:CertificateAssertion = "{" [ sp ca-serialNumber ] [ sep sp ca-issuer ] [ sep sp ca-subjectKeyIdentifier ] [ sep sp ca-authorityKeyIdentifier ] [ sep sp ca-certificateValid ] [ sep sp ca-privateKeyValid ] [ sep sp ca-subjectPublicKeyAlgID ] [ sep sp ca-keyUsage ] [ sep sp ca-subjectAltName ] [ sep sp ca-policy ] [ sep sp ca-pathToName ] [ sep sp ca-subject ] [ sep sp ca-nameConstraints ] sp "}"The <sep> rule is given in [16].ca-serialNumber = id-serialNumber msp CertificateSerialNumberca-issuer = id-issuer msp Nameca-subjectKeyIdentifier = id-subjectKeyIdentifier msp SubjectKeyIdentifierca-authorityKeyIdentifier = id-authorityKeyIdentifier msp AuthorityKeyIdentifierca-certificateValid = certificateValid msp Timeca-privateKeyValid = id-privateKeyValid msp GeneralizedTimeca-subjectPublicKeyAlgID = id-subjectPublicKeyAlgID msp OBJECT-IDENTIFIERca-keyUsage = id-keyUsage msp KeyUsageca-subjectAltName = id-subjectAltName msp AltNameTypeca-policy = id-policy msp CertPolicySetca-pathToName = id-pathToName msp Nameca-subject = id-subject msp Nameca-nameConstraints = id-nameConstraints msp NameConstraintsSyntaxid-subjectKeyIdentifier = %x73.75.62.6A.65.63.74.4B.65.79.49.64.65 %x6E.74.69.66.69.65.72 ; "subjectKeyIdentifier"id-authorityKeyIdentifier = %x61.75.74.68.6F.72.69.74.79.4B.65.79.49 %x64.65.6E.74.69.66.69.65.72 ; "authorityKeyIdentifier"id-certificateValid = %x63.65.72.74.69.66.69.63.61.74.65.56.61 %x6C.69.64 ; "certificateValid"id-privateKeyValid = %x70.72.69.76.61.74.65.4B.65.79.56.61.6C %x69.64 ; "privateKeyValid"id-subjectPublicKeyAlgID = %x73.75.62.6A.65.63.74.50.75.62.6C.69.63 %x4B.65.79.41.6C.67.49.44 ; "subjectPublicKeyAlgID"id-keyUsage = %x6B.65.79.55.73.61.67.65 ; "keyUsage"id-subjectAltName = %x73.75.62.6A.65.63.74.41.6C.74.4E.61.6D %x65 ; "subjectAltName"id-policy = %x70.6F.6C.69.63.79 ; "policy"id-pathToName = %x70.61.74.68.54.6F.4E.61.6D.65 ; "pathToName"id-subject = %x73.75.62.6A.65.63.74 ; "subject"id-nameConstraints = %x6E.61.6D.65.43.6F.6E.73.74.72.61.69.6E %x74.73 ; "nameConstraints"SubjectKeyIdentifier = KeyIdentifierKeyIdentifier = OCTET-STRINGAuthorityKeyIdentifier = "{" [ sp aki-keyIdentifier ] [ sep sp aki-authorityCertIssuer ] [ sep sp aki-authorityCertSerialNumber ] sp "}"aki-keyIdentifier = id-keyIdentifier msp KeyIdentifieraki-authorityCertIssuer = id-authorityCertIssuer msp GeneralNamesGeneralNames = "{" sp GeneralName *( "," sp GeneralName ) sp "}"GeneralName = gn-otherName / gn-rfc822Name / gn-dNSName / gn-x400Address / gn-directoryName / gn-ediPartyName / gn-uniformResourceIdentifier / gn-iPAddress / gn-registeredIDgn-otherName = id-otherName ":" OtherNamegn-rfc822Name = id-rfc822Name ":" IA5Stringgn-dNSName = id-dNSName ":" IA5Stringgn-x400Address = id-x400Address ":" ORAddressgn-directoryName = id-directoryName ":" Namegn-ediPartyName = id-ediPartyName ":" EDIPartyNamegn-iPAddress = id-iPAddress ":" OCTET-STRINGgn-registeredID = gn-id-registeredID ":" OBJECT-IDENTIFIERgn-uniformResourceIdentifier = id-uniformResourceIdentifier ":" IA5Stringid-otherName = %x6F.74.68.65.72.4E.61.6D.65 ; "otherName"gn-id-registeredID = %x72.65.67.69.73.74.65.72.65.64.49.44 ; "registeredID"OtherName = "{" sp on-type-id "," sp on-value sp "}"on-type-id = id-type-id msp OBJECT-IDENTIFIERon-value = id-value msp Valueid-type-id = %x74.79.70.65.2D.69.64 ; "type-id"id-value = %x76.61.6C.75.65 ; "value"The <Value> rule is defined in [13].EDIPartyName = "{" [ sp nameAssigner "," ] sp partyName sp "}"nameAssigner = id-nameAssigner msp DirectoryStringpartyName = id-partyName msp DirectoryStringid-nameAssigner = %x6E.61.6D.65.41.73.73.69.67.6E.65.72 ; "nameAssigner"id-partyName = %x70.61.72.74.79.4E.61.6D.65 ; "partyName"aki-authorityCertSerialNumber = id-authorityCertSerialNumber msp CertificateSerialNumberid-keyIdentifier = %x6B.65.79.49.64.65.6E.74.69.66.69.65.72 ; "keyIdentifier"id-authorityCertIssuer = %x61.75.74.68.6F.72.69.74.79.43.65.72.74.49 %x73.73.75.65.72 ; "authorityCertIssuer"id-authorityCertSerialNumber = %x61.75.74.68.6F.72.69.74.79.43.65.72 %x74.53.65.72.69.61.6C.4E.75.6D.62 %x65.72 ; "authorityCertSerialNumber"Time = time-utcTime / time-generalizedTimetime-utcTime = id-utcTime ":" UTCTimetime-generalizedTime = id-generalizedTime ":" GeneralizedTimeid-utcTime = %x75.74.63.54.69.6D.65 ; "utcTime"id-generalizedTime = %x67.65.6E.65.72.61.6C.69.7A.65.64.54.69.6D.65 ; "generalizedTime"KeyUsage = BIT-STRING / key-usage-bit-listkey-usage-bit-list = "{" [ sp key-usage *( "," sp key-usage ) ] sp "}"The <key-usage-bit-list> rule encodes the one bits in a KeyUsage value as a comma separated list of identifiers. The <BIT-STRING> rule is given in [16].key-usage = id-digitalSignature / id-nonRepudiation / id-keyEncipherment / id-dataEncipherment / id-keyAgreement / id-keyCertSign / id-cRLSign / id-encipherOnly / id-decipherOnlyid-digitalSignature = %x64.69.67.69.74.61.6C.53.69.67.6E.61.74.75.72 %x65 ; "digitalSignature"id-nonRepudiation = %x6E.6F.6E.52.65.70.75.64.69.61.74.69.6F.6E ; "nonRepudiation"id-keyEncipherment = %x6B.65.79.45.6E.63.69.70.68.65.72.6D.65.6E.74 ; "keyEncipherment"id-dataEncipherment = %x64.61.74.61.45.6E.63.69.70.68.65.72.6D.65.6E %x74 ; "dataEncipherment"id-keyAgreement = %x6B.65.79.41.67.72.65.65.6D.65.6E.74 ; "keyAgreement"id-keyCertSign = %x6B.65.79.43.65.72.74.53.69.67.6E ; "keyCertSign"id-cRLSign = %x63.52.4C.53.69.67.6E ; "cRLSign"id-encipherOnly = %x65.6E.63.69.70.68.65.72.4F.6E.6C.79 ; "encipherOnly"id-decipherOnly = %x64.65.63.69.70.68.65.72.4F.6E.6C.79 ; "decipherOnly"AltNameType = ant-builtinNameForm / ant-otherNameFormant-builtinNameForm = id-builtinNameForm ":" BuiltinNameFormant-otherNameForm = id-otherNameForm ":" OBJECT-IDENTIFIERid-builtinNameForm = %x62.75.69.6C.74.69.6E.4E.61.6D.65.46.6F.72.6D ; "builtinNameForm"id-otherNameForm = %x6F.74.68.65.72.4E.61.6D.65.46.6F.72.6D ; "otherNameForm"BuiltinNameForm = id-rfc822Name / id-dNSName / id-x400Address / id-directoryName / id-ediPartyName / id-uniformResourceIdentifier / id-iPAddress / id-registeredIdid-rfc822Name = %x72.66.63.38.32.32.4E.61.6D.65 ; "rfc822Name"id-dNSName = %x64.4E.53.4E.61.6D.65 ; "dNSName"id-x400Address = %x78.34.30.30.41.64.64.72.65.73.73 ; "x400Address"id-directoryName = %x64.69.72.65.63.74.6F.72.79.4E.61.6D.65 ; "directoryName"id-ediPartyName = %x65.64.69.50.61.72.74.79.4E.61.6D.65 ; "ediPartyName"id-iPAddress = %x69.50.41.64.64.72.65.73.73 ; "iPAddress"id-registeredId = %x72.65.67.69.73.74.65.72.65.64.49.64 ; "registeredId"id-uniformResourceIdentifier = %x75.6E.69.66.6F.72.6D.52.65.73.6F.75
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -