From 6ed550c967629927d3e0bd16fb297e8316ba6123 Mon Sep 17 00:00:00 2001 From: James Bowes Date: Wed, 24 Oct 2012 15:51:34 -0300 Subject: [PATCH] Add simple script to dump the certv3 content set extension --- dump-extn.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 dump-extn.rb diff --git a/dump-extn.rb b/dump-extn.rb new file mode 100755 index 0000000..d6568ea --- /dev/null +++ b/dump-extn.rb @@ -0,0 +1,21 @@ +#!/usr/bin/ruby + +require 'openssl' + +def extension_from_cert(cert, extension_id) + x509 = OpenSSL::X509::Certificate.new(cert) + extensions_hash = Hash[x509.extensions.collect { |ext| [ext.oid, ext.to_der()] }] + asn1_body = nil + if extensions_hash[extension_id] + asn1 = OpenSSL::ASN1.decode(extensions_hash[extension_id]) + OpenSSL::ASN1.traverse(asn1.value[1]) do| depth, offset, header_len, length, constructed, tag_class, tag| + asn1_body = asn1.value[1].value[header_len, length] + end + end + asn1_body + end + + +cert = File.open(ARGV[0], "rb").read + +puts extension_from_cert cert, "1.3.6.1.4.1.2312.9.7"