Facebook
From Unreliable Armadillo, 3 Years ago, written in Lua.
Embed
Download Paste or View Raw
Hits: 213
  1. #!/usr/bin/lua
  2.  
  3. -- dumps certs on Pace 5268AC
  4. -- run like: lua dump_certs.lua
  5.  
  6. local cpe = require('cpe')
  7. local openssl = require('openssl')
  8. local x509, pkcs12 = openssl.x509, openssl.pkcs12
  9.  
  10. local function get_certs()
  11.     local p12
  12.     local passwd
  13.     local cert_name = 'lightspeed' -- other one seems to be 'device'
  14.     print("attempting to dump cert name: " .. cert_name)
  15.  
  16.     passwd, p12  = cpe.rgw_compat.tw_ulib_get_network_cert(cert_name)
  17.  
  18.     print("pkcs12 len: " .. string.len(p12))
  19.     print("PKCS12 password:")
  20.     print(passwd)
  21.    
  22.     local t_p12 = assert(openssl.pkcs12.read(p12, passwd))
  23.     local key_pem = openssl.pkey.export(t_p12.pkey)
  24.  
  25.     local cert_pem = t_p12.cert:export()
  26.     print("##### cert + intermediate trust chain + private key ##### ")
  27.  
  28.     print("subject: " .. t_p12.cert:subject():oneline())
  29.     print(cert_pem)
  30.    
  31.     local certs_pem = {}
  32.     local certs_index = 1
  33.     certs_pem[certs_index] = cert_pem
  34.  
  35.     local x_certs = t_p12.extracerts
  36.     for i,crt in pairs(x_certs) do
  37.         certs_index = certs_index + 1
  38.         cert_pem = crt:export()
  39.         certs_pem[certs_index] = cert_pem
  40.         print("subject: " .. crt:subject():oneline())
  41.         print(cert_pem)
  42.         print()
  43.     end
  44.  
  45.     print("##### cert private key #####")
  46.     print(key_pem)
  47.     print()
  48.  
  49.     return key_pem, certs_pem
  50. end
  51.  
  52. get_certs()
  53.