wie konvertieren von raw-Modul & exponent, RSA-public-key - (.pem-format)

Ich habe das Modul & exponent eines RSA-public-key-eingebettet in eine Binär-Datei, und ich bin versucht, extrahieren Sie die gesamte blob und erstellen Sie eine nutzbare .pem-public-key.

Derzeit bin ich extrahieren die volle 260 bytes (4 Byte für den Exponenten, 256 Byte für den E-Modul)
und die Kodierung base64. Ich mache das mit dem folgenden shell-Befehl :

tail -c $((filesize - start_of_key_data)) filename | head -c $size_of_key_data | base64 > outkey

Das gibt mir die folgende Zeichenfolge :

<<<<<< 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=

Nun, wenn ich den Schlüssel zu nehmen.pem-Schlüsselpaar, dass der E-Modul & exponent waren ursprünglich extrahiert aus, und zeigen Sie den öffentlichen Teil wie so

openssl rsa -in key.pem -pubout -out pubkey.pem

Bekomme ich diesen string (ich habe die weggelassen header & Fußzeilen :

<<<<<<<<< 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

Können Sie sehen, dass die wichtigsten Daten, die ich entpackt habe und dann base64-codiert mich ist
tatsächlich in den Daten vorhanden von den gültigen öffentlichen Schlüssel extrahierten Daten aus dem Schlüssel.pem mit openssl.
Allerdings gibt es 45 Zeichen am Anfang, dass meine eigenen extrahierten Daten müssen nicht -

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA

und die letzten 8 Zeichen unterscheiden sich auch.

ZwIDAQAB

Kann jemand einige Ratschläge, wie konvertieren von einem modulus und exponent in einen verwendbaren öffentlichen Schlüssel?

(das Ziel ist, dies in einem bash-Skript, nicht python oder C, wie ich gesehen habe viele vermuten.)

InformationsquelleAutor Erik Nyquist | 2014-12-19

Schreibe einen Kommentar