Closed
Description
Hello again,
I have discovered a problem related to the X509SerialNumber inside the CertificateInstallationReq and CertificateUpdateReq.
The X509SerialNumber can be up to 20 octets by definition (RFC5280 4.1.2.2).
The XSD defines it as an xs:integer type, which has no maximum.
However, cbEXIgen handles xs:integer as int32. This will cause the decoder to fail for long serial numbers.
// Element: definition=complex; name={http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial; type={http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType; base type=; content type=ELEMENT-ONLY;
// abstract=False; final=False;
// Particle: X509IssuerName, string (1, 1); X509SerialNumber, integer (1, 1);
struct iso2_X509IssuerSerialType {
// X509IssuerName, string
struct {
char characters[iso2_X509IssuerName_CHARACTER_SIZE];
uint16_t charactersLen;
} X509IssuerName;
// X509SerialNumber, integer (base: decimal)
int32_t X509SerialNumber;
};
This problem seems to effect all standards, but for DIN the corresponding encode and decode functions do exist but are never used. So this is actually only a problem for ISO-2 and ISO-20.
Best regards