Desde el RFC X.509, en la sección "Módulo etiquetado implícitamente":
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 }
¿Cómo se codificaría x400Address? ¿Te gusta esto ?:
SEQUENCE {
SEQUENCE {
[0] {
[3] {
...
}
}
}
}
El primer [0] es de DistributionPoint (que reemplaza la etiqueta [0] de DistributionPointName) y el [3] es de GeneralName.
Si así es como se supone que debe funcionar, entonces, ¿por qué DistributionPoint tiene etiquetas específicas para el contexto?