diff options
author | Christina Fu <cfu@redhat.com> | 2013-01-26 03:39:24 -0800 |
---|---|---|
committer | Christina Fu <cfu@redhat.com> | 2013-01-26 03:39:24 -0800 |
commit | 95e41dc9043a3fbbeea2abd58cca84d1442c0102 (patch) | |
tree | a795bbb7e6bafb51980d309d7eb635442276e4df /base/tps | |
parent | 833feccb5539146a7f7288ed7eaef5aed9f26911 (diff) | |
download | pki-95e41dc9043a3fbbeea2abd58cca84d1442c0102.tar.gz pki-95e41dc9043a3fbbeea2abd58cca84d1442c0102.tar.xz pki-95e41dc9043a3fbbeea2abd58cca84d1442c0102.zip |
Bug 903401 - TMS: RSA token enrollment failed : public key decode error
Diffstat (limited to 'base/tps')
-rw-r--r-- | base/tps/src/processor/RA_Enroll_Processor.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/base/tps/src/processor/RA_Enroll_Processor.cpp b/base/tps/src/processor/RA_Enroll_Processor.cpp index 6922dc2aa..e4ff38c5e 100644 --- a/base/tps/src/processor/RA_Enroll_Processor.cpp +++ b/base/tps/src/processor/RA_Enroll_Processor.cpp @@ -363,19 +363,25 @@ RA_Status RA_Enroll_Processor::DoEnrollment(AuthParams *login, RA_Session *sessi SECItem der; CERTSubjectPublicKeyInfo* spki = NULL; - Buffer *decodePubKey = Util::URLDecode(pKey); - char *pKey_ascii = NULL; - if (decodePubKey != NULL) { - pKey_ascii = - BTOA_DataToAscii(decodePubKey->getBuf(), decodePubKey->size()); + if (isECC) { + Buffer *decodePubKey = Util::URLDecode(pKey); + char *pKey_ascii = NULL; + if (decodePubKey != NULL) { + pKey_ascii = + BTOA_DataToAscii(decodePubKey->getBuf(), decodePubKey->size()); + } else { + PR_snprintf(audit_msg, 512, "ServerSideKeyGen: failed to URL decode public key"); + goto loser; + } + + der.type = (SECItemType) 0; /* initialize it, since convertAsciiToItem does not set it */ + rv = ATOB_ConvertAsciiToItem (&der, pKey_ascii); } else { - PR_snprintf(audit_msg, 512, "ServerSideKeyGen: failed to URL decode public key"); - goto loser; + der.type = (SECItemType) 0; /* initialize it, since convertAsciiToItem does not set it */ + rv = ATOB_ConvertAsciiToItem (&der, pKey); } - der.type = (SECItemType) 0; /* initialize it, since convertAsciiToItem does not set it */ - rv = ATOB_ConvertAsciiToItem (&der, pKey_ascii); if (rv != SECSuccess){ RA::Debug(LL_PER_CONNECTION,FN, "failed to convert b64 public key to binary"); |