Skip to content

Commit ba28fe9

Browse files
committed
incorrect fix for the extenion handling
Signed-off-by: Matthew B. White <whitemat@uk.ibm.com>
1 parent e32709f commit ba28fe9

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

src/x509.cc

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
#include <x509.h>
12
#include <cstring>
23
#include <sstream>
3-
#include <x509.h>
4+
45

56
using namespace v8;
67

@@ -386,11 +387,7 @@ Local<Value> try_parse(const std::string& dataString) {
386387
BIO *ext_bio = BIO_new(BIO_s_mem());
387388
// IFNULL_FAIL(ext_bio, "unable to allocate memory for extension value BIO");
388389
if (!X509V3_EXT_print(ext_bio, ext, 0, 0)) {
389-
unsigned char *buf = NULL;
390-
int len = i2d_ASN1_OCTET_STRING(X509_EXTENSION_get_data(ext), &buf);
391-
if (len >= 0) {
392-
BIO_write(ext_bio, static_cast<const void *>(buf), len);
393-
}
390+
M_ASN1_OCTET_STRING_print(ext_bio, ext->value);
394391
}
395392

396393
BUF_MEM *bptr;
@@ -468,7 +465,7 @@ Local<Object> parse_name(X509_NAME *subject) {
468465
Local<Object> cert = Nan::New<Object>();
469466
int i, length;
470467
ASN1_OBJECT *entry;
471-
const unsigned char *value;
468+
unsigned char *value;
472469
char buf[255];
473470
length = X509_NAME_entry_count(subject);
474471
for (i = 0; i < length; i++) {

test/test.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,22 @@ x509.verify(
5353
function(err, result) {
5454
assert.throws(assert.ifError.bind(null, err), /Failed to load cert/)
5555
}
56-
);
56+
);
57+
58+
const certWithAttrs = `-----BEGIN CERTIFICATE-----
59+
MIIB6TCCAY+gAwIBAgIUHkmY6fRP0ANTvzaBwKCkMZZPUnUwCgYIKoZIzj0EAwIw
60+
GzEZMBcGA1UEAxMQZmFicmljLWNhLXNlcnZlcjAeFw0xNzA5MDgwMzQyMDBaFw0x
61+
ODA5MDgwMzQyMDBaMB4xHDAaBgNVBAMTE015VGVzdFVzZXJXaXRoQXR0cnMwWTAT
62+
BgcqhkjOPQIBBggqhkjOPQMBBwNCAATmB1r3CdWvOOP3opB3DjJnW3CnN8q1ydiR
63+
dzmuA6A2rXKzPIltHvYbbSqISZJubsy8gVL6GYgYXNdu69RzzFF5o4GtMIGqMA4G
64+
A1UdDwEB/wQEAwICBDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTYKLTAvJJK08OM
65+
VGwIhjMQpo2DrjAfBgNVHSMEGDAWgBTEs/52DeLePPx1+65VhgTwu3/2ATAiBgNV
66+
HREEGzAZghdBbmlscy1NYWNCb29rLVByby5sb2NhbDAmBggqAwQFBgcIAQQaeyJh
67+
dHRycyI6eyJhdHRyMSI6InZhbDEifX0wCgYIKoZIzj0EAwIDSAAwRQIhAPuEqWUp
68+
svTTvBqLR5JeQSctJuz3zaqGRqSs2iW+QB3FAiAIP0mGWKcgSGRMMBvaqaLytBYo
69+
9v3hRt1r8j8vN0pMcg==
70+
-----END CERTIFICATE-----`;
71+
72+
73+
var cert = x509.parseCert((certWithAttrs));
74+
console.log(cert)

0 commit comments

Comments
 (0)