login about faq

Hi everyone.

I have used this site (http://travistidwell.com/jsencrypt/demo/index.html) to create RSA 2048 keys. When I try to use CkoPrivateKey to import the key, I keep getting an error. I have tried to load the PEM as a string using the 'loadPem' method and getting the actual data object from the PEM and loading as a DER using 'loadRSADer'.

To reproduce, go ahead and create a RSA-2048 key using the link provided above, then run that through CkoPrivateKey, like so:

NSString *myPEM = @"PUT_PRIVATE_KEY_PEM_HERE";

CkoPrivateKey *myPrivateKey = [CkoPrivateKey new];
BOOL success = [myPrivateKey LoadPem: myPEM];

if (!success) {
    NSLog(@"%@", myPrivateKey.lastErrorText);
}

Can someone figure out what I'm doing wrong? Am I using the wrong method of CkoPrivateKey? Is there something wrong w/the RSA key I'm generating? Here is my error text:

ChilkatLog:
  LoadPem:
    DllDate: Jun 23 2014
    ChilkatVersion: 9.5.0.40
    UnlockPrefix: chilkatUnlockKey
    Architecture: Little Endian; 32-bit
    Language: IOS Objective-C
    VerboseLogging: 1
    loadPem:
      Failed to convert from PEM to DER
    --loadPem
    Failed.
  --LoadPem
--ChilkatLog

Thanks in advance.

asked Jul 23 '14 at 20:08

Edgar's gravatar image

Edgar
1123

edited Jul 23 '14 at 20:15


I did not find a problem. I generated PEM from the site, and then in C++ did this:

bool RsaTesting::qa_loadPemPrivateKey(void)
    {
    const char *pem = "-----BEGIN RSA PRIVATE KEY-----\r\n\
MIICWwIBAAKBgHcbVK1yU0uXKeJL0jhUkaeT9GFDkbAUvxdp/wXqcY0nBGhcYBgJ\r\n\
aZ7IVSFjAWNreJbRyEmgoL8l3RnUtunDiJ2hHdMizE3KDcQEINOXl8kiLny1h/Iq\r\n\
X651izVrStmCnXxQi/wp0X4EfdlJcbB//f/Bxsfn1Pq35QU9Qkb8fdI5AgMBAAEC\r\n\
gYAXbvsj/OBCeQU2jrBXgNv/Wm60TDT3rb1DAAm6wjuBB/IoDjShxghPwx5sqSv2\r\n\
wYhCNBfx1HaL5QkxMdai+2N/SvrNrnFZRApV5K9GHAQpE7cNM/QEhukoJ4aTIJ8j\r\n\
Xaa/to2y04ZwjlmoD3ncLba6EvNjHjsr6GJB4YSV9RCgmQJBALrvtnuUzOHF1T+P\r\n\
FhScpvI6wl9zyRdunA5GNz9gi2M4h5VJyc9QvbyQnMaX1fsXseAZk57eenwqaDen\r\n\
s61GLt8CQQCjHFlh3ZHf/Wa/EP1qomc+IBqHnE+cxpo7dOhtY51TQFFYZXhVys4+\r\n\
HVCpF3zlLKv1BnejVVyLV0wj7oeF4lnnAkEAiSJDHyOIrXOgvZCtJQ/KVNaQMs/Q\r\n\
zFTDPKF79A1SE8arh/PqjSBxIDyCFhnayumV/o0kwx34gs/lRjbLU6ixxwJASQmO\r\n\
tJXklin/8hqHf1JNbLIvbv39YDRGJ82HrkPm1Lp+Mljtc20mwQWbcrwDvxMrxMIq\r\n\
nEbC89oZTBWpNbhPjQJATKyrMV4u+8DNOLin58VehcTTYvMeV/t0nDacj2cuf5hP\r\n\
OdePfxtjwwM7bEF3tRFxmDbsn+hJl0TdQVxUjgnZDQ==\r\n\
-----END RSA PRIVATE KEY-----";

CkPrivateKey key;

bool success = key.LoadPem(pem);

printf("%s\n",key.lastErrorText());

printf("qa_loadPemPrivateKey %s\n", success ? "success" : "failed" );

return success;
}

Here is the LastErrorText indicating success:
ChilkatLog:
  LoadPem:
    DllDate: Jul 24 2014
    ChilkatVersion: 9.5.0.41
    UnlockPrefix: UNTTSTMAILQ
    Username: CHILKAT13:Matt
    Architecture: Little Endian; 32-bit
    Language: Visual C++ 11.0 (32-bit)
    VerboseLogging: 0
    loadPem:
      loadPrivateKey:
        Loaded RSA DER
      --loadPrivateKey
      Verifying the DER...
    --loadPem
    Success.
  --LoadPem
--ChilkatLog

qa_loadPemPrivateKey success

link

answered Jul 24 '14 at 19:48

chilkat's gravatar image

chilkat ♦♦
11.8k316358421

edited Jul 24 '14 at 19:50

A-ha! I see what happened. My application code was stripping out all the carriage returns from my keys before sending them to the 'loadPem' method. Fixed that in my code all is working. Thanks!!!

link

answered Jul 24 '14 at 21:41

Edgar's gravatar image

Edgar
1123

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×94
×48
×34
×10
×1

Asked: Jul 23 '14 at 20:08

Seen: 1,205 times

Last updated: Jul 24 '14 at 21:41

powered by OSQA