From the X.509 RFC:
DistributionPoint ::= SEQUENCE {
distributionPoint [0] DistributionPointName OPTIONAL,
reasons [1] ReasonFlags OPTIONAL,
cRLIssuer [2] GeneralNames OPTIONAL }
DistributionPointName ::= CHOICE {
fullName [0] GeneralNames,
nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
GeneralName ::= CHOICE {
otherName [0] AnotherName,
rfc822Name [1] IA5String,
dNSName [2] IA5String,
x400Address [3] ORAddress,
directoryName [4] Name,
ediPartyName [5] EDIPartyName,
uniformResourceIdentifier [6] IA5String,
iPAddress [7] OCTET STRING,
registeredID [8] OBJECT IDENTIFIER }
Also....
If the DistributionPointName contains multiple values, each name
describes a different mechanism to obtain the same CRL. For example,
the same CRL could be available for retrieval through both LDAP and
HTTP.
My question is... how do the distribution mechanisms work for each of those? rfc822Name is email, I think, so what are you supposed to do? Shoot the email address specified by that an email and expect it to auto-respond immediately with the CRL?
dNSName is for domain names so what do you do there? Request the TXT record for www.domain.tld? And what about ipAddress? Am I supposed to use a particular protocol to get the CRL?
I have no idea what x400Address, ediPartyName or registeredID are supposed to be..
I guess directoryName is supposed to be another DN but I'm not really sure how that tells you how to get the CRL. Maybe you're supposed to find a CA whose subject matches the certs CRL Distribution Point directory name and see if that contains a URI (or email address or whatever)?