Re: how to generate RSA format data?
On Tue, Feb 02, 2010, hunter li wrote: Hi, All, I have the following code to generate the RSA data. But it always gives me error: 5049:error:0906D064:lib(9):func(109):reason(100):pem_lib.c:756. I do appreciate any suggestion! First suggestion is don't post user questions to the dev list. Second is that you don't have any newlines in the base64 data. Steve. -- Dr Stephen N. Henson. OpenSSL project core developer. Commercial tech support now available see: http://www.openssl.org __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org
Re: how to generate RSA format data?
Hi, Steve, thank you very much! How can I add newlines into the base64 data. sincerely, Hunter On Wed, Feb 3, 2010 at 9:35 AM, Dr. Stephen Henson st...@openssl.orgwrote: On Tue, Feb 02, 2010, hunter li wrote: Hi, All, I have the following code to generate the RSA data. But it always gives me error: 5049:error:0906D064:lib(9):func(109):reason(100):pem_lib.c:756. I do appreciate any suggestion! First suggestion is don't post user questions to the dev list. Second is that you don't have any newlines in the base64 data. Steve. -- Dr Stephen N. Henson. OpenSSL project core developer. Commercial tech support now available see: http://www.openssl.org __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org
Re: how to generate RSA format data?
Hi, Shahin, Thank you very much! I will try to find the algorithm identifier and an exponent. I just read raw data from DVD disk to verify the DVD data. I try to use rsa_public_decrypt or rsa_verify. Both of them need to use a RSA* format data. For now I only have the above raw data as public key. Actually I really have no idea to convert the raw data into RSA* format. sincerely, Hunter On Wed, Feb 3, 2010 at 12:15 AM, Shahin Khorasani khoras...@amnafzar.comwrote: Hello hunter, Your raw data seems to be a RSA public key modulus. A public key in ASN.1 must have an algorithm identifier and an exponent. Take a look at this sample: raw data is (hexdump): 8230 2201 0d30 0906 862a 8648 0df7 0101 0501 0300 0182 000f 8230 0a01 8202 0101 *d200 808c f87b cf63 7cb3 2cff 43dd 5cf5 * --- You just provided this part *7def d1f5 adaa 0944 87ea f398 a654 b36d 2303 4d68 e9fa fd46 9171 0f97 2960 cd1e 6045 21aa 6986 44e2 679f 5a07 bbf9 157e 82e2 82a8 5f42 7cee 4af6 7c1a e53d 05a3 cf9a fc6a a0d9 6850 64f1 a6af f6fe c61c f39f ba1e cb31 c734 5c2f 4937 5383 4de5 7b29 010a 2f86 41ab 00af 2ce3 3a48 3d19 41c2 3196 455d 219b d1a0 9600 a107 65a7 f195 aacd a105 3c71 fc7f 9c58 5825 6bd7 ffe7 8d47 6c3d de2a 2779 489f 2641 ed81 9f54 62e2 c4ed 893d e0bf 3678 a8c9 6573 bda9 9b1f acb1 6634 9375 48bf ef82 887c 0e08 6b68 b6f3 8170 bda0 f8a7 2e1b 023d 5309 a755 e68e e014 cffd 9610 857a 3ffb f569 344c 7ea7 2520 d33f 0084 a9ca eaf6 028f *0103 0100 Gutman ASN1 dumper output: 0 290: SEQUENCE { 4 13: SEQUENCE { 69: OBJECT IDENTIFIER rsaEncryption (1 2 840 113549 1 1 1) 170: NULL : } 19 271: BIT STRING, encapsulates { 24 266: SEQUENCE { 28 257: INTEGER : 00 D2 8C 80 7B F8 63 CF B3 7C FF 2C DD 43 F5 5C : EF 7D F5 D1 AA AD 44 09 EA 87 98 F3 54 A6 6D B3 : 03 23 68 4D FA E9 46 FD 71 91 97 0F 60 29 1E CD : 45 60 AA 21 86 69 E2 44 9F 67 07 5A F9 BB 7E 15 : E2 82 A8 82 42 5F EE 7C F6 4A 1A 7C 3D E5 A3 05 : 9A CF 6A FC D9 A0 50 68 F1 64 AF A6 FE F6 1C C6 : 9F F3 1E BA 31 CB 34 C7 2F 5C 37 49 83 53 E5 4D : 29 7B 0A 01 86 2F AB 41 AF 00 E3 2C 48 3A 19 3D : C2 41 96 31 5D 45 9B 21 A0 D1 00 96 07 A1 A7 65 : 95 F1 CD AA 05 A1 71 3C 7F FC 58 9C 25 58 D7 6B : E7 FF 47 8D 3D 6C 2A DE 79 27 9F 48 41 26 81 ED : 54 9F E2 62 ED C4 3D 89 BF E0 78 36 C9 A8 73 65 : A9 BD 1F 9B B1 AC 34 66 75 93 BF 48 82 EF 7C 88 : 08 0E 68 6B F3 B6 70 81 A0 BD A7 F8 1B 2E 3D 02 : 09 53 55 A7 8E E6 14 E0 FD CF 10 96 7A 85 FB 3F : 69 F5 4C 34 A7 7E 20 25 3F D3 84 00 CA A9 F6 EA : 8F 2893: INTEGER 65537 : } : } : } Regards, Shahin Khorasani hunter li wrote: Hi, All, I have the following code to generate the RSA data. But it always gives me error: 5049:error:0906D064:lib(9):func(109):reason(100):pem_lib.c:756. I do appreciate any suggestion! #include stdio.h #include stdlib.h #include stdint.h #include string.h #include openssl/bio.h #include openssl/rsa.h #include openssl/pem.h #include openssl/err.h int main(void) { RSA *public_key; BIO *pub_bio; char *publicKey_test = -BEGIN PUBLIC KEY-\nOTJjM2I3NTJmMmZlMzhkOTZjOTI2MjIxNzc0NjllNzM\ MWExMDk5MmZkNWY3MWE0N2JlMzRhMzcxMDZkZDNkMTk\ ZTUzNDc4OTY4OWQzM2FlYWRjMmQ2NWEzNGM5NjdjYzg\ ODQzMzNhNDI4YjEyODRjZmQ0ZGNkZjVjM2UyNDU5Njk\ NzNmMDAyZGEyMjIxZGM3NGM3NjdhYzZkYWIzYjc1YmE\ MzAwZmZlNzcxZmIzMGJhZTBhMzQ4OGUxYTBhYzU0MmI\ N2EwOTVlZWIzMzg1MWMwZWM2N2YwNDMzMzE3MTdkOTU\ ZjM2ZmFlM2NiMDI3MTdhMjQxNjc3YTRkNTI4ODNhZDM\ MzQ3ODE1N2IzZDcwODk0YjVmYzI3MTI5NmU4MjViOTU\ Y2Q1NTQ3M2ZlMWY5MzgzYmZjZTkzN2YyNmRhNjliOTY\ OGE0MjA4YzBiOTU1NDAyNDM1ZTcwYjY0NDE1OTE2MmE\ YjFmNmU4ODA5YTAwMWI2N2MwNDE4NzU3NWEwMGNkN2Q\ OTU0YTcxNzkyZTJiZjlhYjcxOTk1NzdmYjc2NWI3YjQ\ OWNmOGJmYjM3MGQxNDMxZGE3OGYwMTU4ODEwY2Y5OTI\ MWUxMzAyMzUzNTFmNjUyMjU4NjkzNjM3MTU1YmUyMzU\ NTQyYjhlYTIzMzI2NTE0ZTAzOGVlZjM4ZDVjZTBmNzc=\n-END PUBLIC KEY-; pub_bio = BIO_new_mem_buf(publicKey_test, -1); if(pub_bio == NULL) { ERR_print_errors_fp(stdout); return 1; } public_key = PEM_read_bio_RSA_PUBKEY(pub_bio, NULL, NULL, NULL); if(public_key == NULL) { ERR_print_errors_fp(stdout); } RSA_free(public_key); return 0; } Here I try to convert the following public key raw data into PEM format. I encode the data into base64 and add-BEGIN PUBLIC KEY-, END PUBLIC KEY-. The raw data is as following 256 Bytes: 92 c3 b7 52 f2 fe 38 d9 6c 92 62 21 77 46 9e 73 1a 10 99 2f d5 f7 1a 47 be 34 a3 71 06 dd 3d 19 e5 34 78 96 89 d3 3a ea dc 2d 65 a3 4c 96 7c c8 84 33 3a 42 8b 12 84 cf d4 dc df 5c 3e 24 59 69 73 f0 02 da 22 21 dc 74 c7 67 ac 6d ab
Re: how to generate RSA format data?
Hello hunter, Your raw data seems to be a RSA public key modulus. A public key in ASN.1 must have an algorithm identifier and an exponent. Take a look at this sample: raw data is (hexdump): 8230 2201 0d30 0906 862a 8648 0df7 0101 0501 0300 0182 000f 8230 0a01 8202 0101 d200 808c f87b cf63 7cb3 2cff 43dd 5cf5--- You just provided this part 7def d1f5 adaa 0944 87ea f398 a654 b36d 2303 4d68 e9fa fd46 9171 0f97 2960 cd1e 6045 21aa 6986 44e2 679f 5a07 bbf9 157e 82e2 82a8 5f42 7cee 4af6 7c1a e53d 05a3 cf9a fc6a a0d9 6850 64f1 a6af f6fe c61c f39f ba1e cb31 c734 5c2f 4937 5383 4de5 7b29 010a 2f86 41ab 00af 2ce3 3a48 3d19 41c2 3196 455d 219b d1a0 9600 a107 65a7 f195 aacd a105 3c71 fc7f 9c58 5825 6bd7 ffe7 8d47 6c3d de2a 2779 489f 2641 ed81 9f54 62e2 c4ed 893d e0bf 3678 a8c9 6573 bda9 9b1f acb1 6634 9375 48bf ef82 887c 0e08 6b68 b6f3 8170 bda0 f8a7 2e1b 023d 5309 a755 e68e e014 cffd 9610 857a 3ffb f569 344c 7ea7 2520 d33f 0084 a9ca eaf6 028f 0103 0100 Gutman ASN1 dumper output: 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, encapsulates { 24 266: SEQUENCE { 28 257: INTEGER : 00 D2 8C 80 7B F8 63 CF B3 7C FF 2C DD 43 F5 5C : EF 7D F5 D1 AA AD 44 09 EA 87 98 F3 54 A6 6D B3 : 03 23 68 4D FA E9 46 FD 71 91 97 0F 60 29 1E CD : 45 60 AA 21 86 69 E2 44 9F 67 07 5A F9 BB 7E 15 : E2 82 A8 82 42 5F EE 7C F6 4A 1A 7C 3D E5 A3 05 : 9A CF 6A FC D9 A0 50 68 F1 64 AF A6 FE F6 1C C6 : 9F F3 1E BA 31 CB 34 C7 2F 5C 37 49 83 53 E5 4D : 29 7B 0A 01 86 2F AB 41 AF 00 E3 2C 48 3A 19 3D : C2 41 96 31 5D 45 9B 21 A0 D1 00 96 07 A1 A7 65 : 95 F1 CD AA 05 A1 71 3C 7F FC 58 9C 25 58 D7 6B : E7 FF 47 8D 3D 6C 2A DE 79 27 9F 48 41 26 81 ED : 54 9F E2 62 ED C4 3D 89 BF E0 78 36 C9 A8 73 65 : A9 BD 1F 9B B1 AC 34 66 75 93 BF 48 82 EF 7C 88 : 08 0E 68 6B F3 B6 70 81 A0 BD A7 F8 1B 2E 3D 02 : 09 53 55 A7 8E E6 14 E0 FD CF 10 96 7A 85 FB 3F : 69 F5 4C 34 A7 7E 20 25 3F D3 84 00 CA A9 F6 EA : 8F 289 3: INTEGER 65537 : } : } : } Regards, Shahin Khorasani hunter li wrote: Hi, All, I have the following code to generate the RSA data. But it always gives me error: 5049:error:0906D064:lib(9):func(109):reason(100):pem_lib.c:756. I do appreciate any suggestion! #include stdio.h #include stdlib.h #include stdint.h #include string.h #include openssl/bio.h #include openssl/rsa.h #include openssl/pem.h #include openssl/err.h int main(void) { RSA *public_key; BIO *pub_bio; char *publicKey_test = "-BEGIN PUBLIC KEY-\nOTJjM2I3NTJmMmZlMzhkOTZjOTI2MjIxNzc0NjllNzM\ MWExMDk5MmZkNWY3MWE0N2JlMzRhMzcxMDZkZDNkMTk\ ZTUzNDc4OTY4OWQzM2FlYWRjMmQ2NWEzNGM5NjdjYzg\ ODQzMzNhNDI4YjEyODRjZmQ0ZGNkZjVjM2UyNDU5Njk\ NzNmMDAyZGEyMjIxZGM3NGM3NjdhYzZkYWIzYjc1YmE\ MzAwZmZlNzcxZmIzMGJhZTBhMzQ4OGUxYTBhYzU0MmI\ N2EwOTVlZWIzMzg1MWMwZWM2N2YwNDMzMzE3MTdkOTU\ ZjM2ZmFlM2NiMDI3MTdhMjQxNjc3YTRkNTI4ODNhZDM\ MzQ3ODE1N2IzZDcwODk0YjVmYzI3MTI5NmU4MjViOTU\ Y2Q1NTQ3M2ZlMWY5MzgzYmZjZTkzN2YyNmRhNjliOTY\ OGE0MjA4YzBiOTU1NDAyNDM1ZTcwYjY0NDE1OTE2MmE\ YjFmNmU4ODA5YTAwMWI2N2MwNDE4NzU3NWEwMGNkN2Q\ OTU0YTcxNzkyZTJiZjlhYjcxOTk1NzdmYjc2NWI3YjQ\ OWNmOGJmYjM3MGQxNDMxZGE3OGYwMTU4ODEwY2Y5OTI\ MWUxMzAyMzUzNTFmNjUyMjU4NjkzNjM3MTU1YmUyMzU\ NTQyYjhlYTIzMzI2NTE0ZTAzOGVlZjM4ZDVjZTBmNzc=\n-END PUBLIC KEY-"; pub_bio = BIO_new_mem_buf(publicKey_test, -1); if(pub_bio == NULL) { ERR_print_errors_fp(stdout); return 1; } public_key = PEM_read_bio_RSA_PUBKEY(pub_bio, NULL, NULL, NULL); if(public_key == NULL) { ERR_print_errors_fp(stdout); } RSA_free(public_key); return 0; } Here I try to convert the following public key raw data into PEM format. I encode the data into base64 and add"-BEGIN PUBLIC KEY-", "END PUBLIC KEY-". The raw data is as following 256 Bytes: 92 c3 b7 52 f2 fe 38 d9 6c 92 62 21 77 46 9e 73 1a 10 99 2f d5 f7 1a 47 be 34 a3 71 06 dd 3d 19 e5 34 78 96 89 d3 3a ea dc 2d 65 a3 4c 96 7c c8 84 33 3a 42 8b 12 84 cf d4 dc df 5c 3e 24 59 69 73 f0 02 da 22 21 dc 74 c7 67 ac 6d ab 3b 75 ba 30 0f fe 77 1f b3 0b ae 0a 34 88 e1 a0 ac 54 2b 7a 09 5e eb 33 85 1c 0e c6 7f 04 33 31 71 7d 95 f3 6f ae 3c b0 27 17 a2 41 67 7a 4d 52 88 3a d3 34 78 15 7b 3d 70 89 4b 5f c2 71 29 6e 82 5b 95 cd 55 47 3f e1 f9 38 3b fc e9 37 f2 6d a6 9b 96 8a 42 08 c0 b9 55 40 24 35 e7 0b 64 41 59 16 2a b1 f6 e8 80 9a 00 1b 67 c0 41 87 57 5a 00 cd 7d 95 4a 71 79 2e 2b f9 ab 71 99 57 7f b7 65 b7 b4 9c f8 bf b3 70 d1 43 1d a7 8f 01 58 81 0c f9 92 1e 13 02 35 35 1f 65 22 58 69 36 37 15 5b e2 35 54 2b 8e a2 33 26 51 4e 03 8e ef 38 d5 ce 0f 77 Thank you in advance! Hunter __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org