403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
|
sig_nid = OBJ_obj2nid(sig_alg->algorithm);
LAPPEND_STR(interp, certPtr, "signatureAlgorithm", OBJ_nid2ln(sig_nid), -1);
len = (sig_nid != NID_undef) ? String_to_Hex(sig->data, sig->length, (unsigned char *) buffer, BUFSIZ) : 0;
LAPPEND_STR(interp, certPtr, "signatureValue", buffer, (Tcl_Size) len);
}
/* Version of the encoded certificate - RFC 5280 section 4.1.2.1 */
LAPPEND_LONG(interp, certPtr, "version", X509_get_version(cert)+1);
/* Unique number assigned by CA to certificate - RFC 5280 section 4.1.2.2 */
len = BIO_to_Buffer(i2a_ASN1_INTEGER(bio, X509_get0_serialNumber(cert)), bio, buffer, BUFSIZ);
LAPPEND_STR(interp, certPtr, "serialNumber", buffer, (Tcl_Size) len);
/* Signature algorithm used by the CA to sign the certificate. Must match
signatureAlgorithm. RFC 5280 section 4.1.2.3 */
|
|
|
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
|
sig_nid = OBJ_obj2nid(sig_alg->algorithm);
LAPPEND_STR(interp, certPtr, "signatureAlgorithm", OBJ_nid2ln(sig_nid), -1);
len = (sig_nid != NID_undef) ? String_to_Hex(sig->data, sig->length, (unsigned char *) buffer, BUFSIZ) : 0;
LAPPEND_STR(interp, certPtr, "signatureValue", buffer, (Tcl_Size) len);
}
/* Version of the encoded certificate - RFC 5280 section 4.1.2.1 */
LAPPEND_INT(interp, certPtr, "version", X509_get_version(cert)+1);
/* Unique number assigned by CA to certificate - RFC 5280 section 4.1.2.2 */
len = BIO_to_Buffer(i2a_ASN1_INTEGER(bio, X509_get0_serialNumber(cert)), bio, buffer, BUFSIZ);
LAPPEND_STR(interp, certPtr, "serialNumber", buffer, (Tcl_Size) len);
/* Signature algorithm used by the CA to sign the certificate. Must match
signatureAlgorithm. RFC 5280 section 4.1.2.3 */
|
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
|
/* Subject Directory Attributes provides identification attributes (e.g., nationality)
of the subject. RFC 5280 section 4.2.1.8 (subjectDirectoryAttributes) */
/* Basic Constraints identifies whether the subject of the cert is a CA and
the max depth of valid cert paths for this cert. RFC 5280 section 4.2.1.9, NID_basic_constraints */
if (!(xflags & EXFLAG_PROXY)) {
LAPPEND_LONG(interp, certPtr, "pathLen", X509_get_pathlen(cert));
} else {
LAPPEND_LONG(interp, certPtr, "pathLen", X509_get_proxy_pathlen(cert));
}
LAPPEND_BOOL(interp, certPtr, "basicConstraintsCA", xflags & EXFLAG_CA);
/* Name Constraints is only used in CA certs to indicate the name space for
all subject names in subsequent certificates in a certification path
MUST be located. RFC 5280 section 4.2.1.10, NID_name_constraints */
|
|
|
|
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
|
/* Subject Directory Attributes provides identification attributes (e.g., nationality)
of the subject. RFC 5280 section 4.2.1.8 (subjectDirectoryAttributes) */
/* Basic Constraints identifies whether the subject of the cert is a CA and
the max depth of valid cert paths for this cert. RFC 5280 section 4.2.1.9, NID_basic_constraints */
if (!(xflags & EXFLAG_PROXY)) {
LAPPEND_INT(interp, certPtr, "pathLen", X509_get_pathlen(cert));
} else {
LAPPEND_INT(interp, certPtr, "pathLen", X509_get_proxy_pathlen(cert));
}
LAPPEND_BOOL(interp, certPtr, "basicConstraintsCA", xflags & EXFLAG_CA);
/* Name Constraints is only used in CA certs to indicate the name space for
all subject names in subsequent certificates in a certification path
MUST be located. RFC 5280 section 4.2.1.10, NID_name_constraints */
|