Ted Zlatanov <[email protected]> writes:

> If I generate a public RSA key into a PEM file and then base64-decode the
> contents (this is in Emacs):
>
> (string-to-unibyte (base64-decode-string
> "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAreGA/Qky9W3izQV0kzba
[...]
> EwIDAQAB"))

> rsa_keypair_from_der (&key, NULL, 0, SCHARS (public_key), SDATA (public_key))
>
> It keeps failing.  From the docs and example it seems like that should
> work.  Can you see what I'm doing wrong?

The data corresponds to (according to dumpasn1):

  0 290: SEQUENCE {
  4  13:   SEQUENCE {
  6   9:     OBJECT IDENTIFIER rsaEncryption (1 2 840 113549 1 1 1)
 17   0:     NULL
       :     }
 19 271:   BIT STRING
       :     30 82 01 0A 02 82 01 01 00 AD E1 80 FD 09 32 F5
       :     6D E2 CD 05 74 93 36 DA EF 02 A5 FF 0C F0 C6 46
       :     DB 43 1B DC 52 A5 13 D6 4A E0 01 B3 BF 9F 5B 58
       :     16 35 DD 25 9A 16 C1 B3 0E FE AB FB 35 1A 0C 0D
       :     8E 32 3D 61 A9 B1 07 D8 F8 F4 88 92 70 21 4D 95
       :     5B 83 05 EB 9B FC 1B DF BF A1 29 12 9A C7 65 19
       :     F4 0F D1 C7 8B C9 65 16 25 92 9B D9 F4 B6 C1 CE
       :     2B 1E 14 D3 7B 48 C5 96 AA 48 C1 3B F3 5E 4F CF
       :             [ Another 142 bytes skipped ]
       :   }

Which looks ok to me. But Nettle's rsa_keypair_from_der wants the
contents of that BIT STRING only, not the complete object. Hava a look
at tools/pkcs1-conv.c, which I think is the only example code using
these functions.

BTW, you might want to have a look at the unfinished openpgp code in
Nettle (pgp.h, pgp-encode.c and rsa2openpgp.c). But it's not very useful
in the current state.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs

Reply via email to