#!/usr/bin/lua -- dumps certs on Pace 5268AC -- run like: lua dump_certs.lua local cpe = require('cpe') local openssl = require('openssl') local x509, pkcs12 = openssl.x509, openssl.pkcs12 local function get_certs() local p12 local passwd local cert_name = 'lightspeed' -- other one seems to be 'device' print("attempting to dump cert name: " .. cert_name) passwd, p12 = cpe.rgw_compat.tw_ulib_get_network_cert(cert_name) print("pkcs12 len: " .. string.len(p12)) print("PKCS12 password:") print(passwd) local t_p12 = assert(openssl.pkcs12.read(p12, passwd)) local key_pem = openssl.pkey.export(t_p12.pkey) local cert_pem = t_p12.cert:export() print("##### cert + intermediate trust chain + private key ##### ") print("subject: " .. t_p12.cert:subject():oneline()) print(cert_pem) local certs_pem = {} local certs_index = 1 certs_pem[certs_index] = cert_pem local x_certs = t_p12.extracerts for i,crt in pairs(x_certs) do certs_index = certs_index + 1 cert_pem = crt:export() certs_pem[certs_index] = cert_pem print("subject: " .. crt:subject():oneline()) print(cert_pem) print() end print("##### cert private key #####") print(key_pem) print() return key_pem, certs_pem end get_certs()