Ho il modulo & esponente di una chiave pubblica RSA incorporata in un file binario e sto cercando di estrarre l'intero blob e creare un file utilizzabile. chiave pubblica pem.come convertire modulo ed esponente grezzo in chiave pubblica RSA (formato .pem)
Attualmente sto estraendo i 260 byte completi (4 byte per l'esponente, 256 byte per il modulo) e la codifica come base64. Sto facendo che utilizzando il seguente comando shell:
tail -c $((filesize - start_of_key_data)) filename | head -c $size_of_key_data | base64 > outkey
Questo mi dà la seguente stringa:
<<<<<< modulus & exponent extracted from binary file, base64-encoded >>>>>>
tZyrQA6cZFJfVm6FyXwtZaLQYg8EecuO+ObrHTwc8JO+XrgnpNAdmlhbAEPxSNnjwhNnbYGYGL4F
vzmnZXzZU71Key42HQPh1k2Zx1UDbrH5ciODKx1ZbuEx8K24SHnL1nY/H75hwhT/ZRRVGQDvYDT+
sgzw2vmV66+dflw1Zs8BLhqjLjczdHvjeVXsDRJ9Mvvd/dhFH8UlTf4JpLGya9nsNIfNBBIf1Lll
RWwCTiEIbaOMgWcLjLV/2tk/j5Dra/oQnVf/2hVsEF/hXEx41YjeEW/warweoDVG7zaxrHEc/k/r
ZCUCZKxf8nBKdqax/gRICvkG6e5xg2GQw0W/ZwABAAE=
Ora, quando prendo la coppia di chiavi key.pem che l'esponente modulo & erano originariamente estratto da , e visualizza la parte pubblica questo modo
openssl rsa -in key.pem -pubout -out pubkey.pem
ottengo questa stringa (ho omesso le linee piè intestazione &:
<<<<<<<<< valid public key data extracted from keypair >>>>>>>>>
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZyrQA6cZFJfVm6FyXwt
ZaLQYg8EecuO+ObrHTwc8JO+XrgnpNAdmlhbAEPxSNnjwhNnbYGYGL4FvzmnZXzZ
U71Key42HQPh1k2Zx1UDbrH5ciODKx1ZbuEx8K24SHnL1nY/H75hwhT/ZRRVGQDv
YDT+sgzw2vmV66+dflw1Zs8BLhqjLjczdHvjeVXsDRJ9Mvvd/dhFH8UlTf4JpLGy
a9nsNIfNBBIf1LllRWwCTiEIbaOMgWcLjLV/2tk/j5Dra/oQnVf/2hVsEF/hXEx4
1YjeEW/warweoDVG7zaxrHEc/k/rZCUCZKxf8nBKdqax/gRICvkG6e5xg2GQw0W/
ZwIDAQAB
Si può vedere che i dati chiave che ho estratto e codifica Base64 me è effettivamente presente nei dati dei dati chiave pubblica valida estratte dal key.pem utilizzando OpenSSL. Tuttavia ci sono 45 caratteri all'inizio, che la mia dati estratti non ha -
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
e gli ultimi 8 caratteri anche differire.
Qualcuno può offrire qualche consiglio su come convertire un modulo e un esponente in una chiave pubblica utilizzabile?
(l'obiettivo è di fare questo in uno script bash, non pitone o C come ho visto molti suggeriscono.)
risposta formidabile! –