Uma chave 8192 rsa é 8192 bits , não bytes. Isso é 1024 bytes.
Codificar bytes no BASE64 aumenta seu tamanho em um fator de 4/3:
$ echo $((1024*8/6))
1365
Que está perto do tamanho da chave dentro do arquivo de chave pública.
$ awk '{print $2}' rsatest.pub | wc -c
1397
É claro que o "arquivo de chave privada" contém (pelo menos) :
- o valor de m (módulo público)
- o valor de e
- o valor de d
- o valor de p
- o valor de q
E, na verdade, contém 8 (números grandes e pequenos):
cat rsatest | grep -v -- ----- | tr -d '\n' | base64 -d | openssl asn1parse -inform DER
Isso aumenta o tamanho em um fator de pelo menos 4, contém 6363 bytes.
Outra forma de procurar dentro do arquivo privado é:
openssl rsa -text -in rsatest
Que mostra que o arquivo contém inteiros para
- módulo
- publicExponent
- privateExponent
- prime1
- prime2
- expoente1
- exponent2
- coeficiente