Da RFC X.509, nella sezione "Modulo con tag implicito":
CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
DistributionPoint ::= SEQUENCE {
distributionPoint [0] DistributionPointName OPTIONAL,
reasons [1] ReasonFlags OPTIONAL,
cRLIssuer [2] GeneralNames OPTIONAL }
DistributionPointName ::= CHOICE {
fullName [0] GeneralNames,
nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
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 }
Come sarebbe codificato x400Address? Ti piace?:
SEQUENCE {
SEQUENCE {
[0] {
[3] {
...
}
}
}
}
Il primo [0] è da DistributionPoint (che sostituisce il tag [0] di DistributionPointName) e [3] è da GeneralName.
Se è così che dovrebbe funzionare, però, perché DistributionPoint ha anche tag specifici del contesto?