diff options
Diffstat (limited to 'pki/base/tps/src/engine/RA.cpp')
| -rw-r--r-- | pki/base/tps/src/engine/RA.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pki/base/tps/src/engine/RA.cpp b/pki/base/tps/src/engine/RA.cpp index 8d9e335fa..7f13710a2 100644 --- a/pki/base/tps/src/engine/RA.cpp +++ b/pki/base/tps/src/engine/RA.cpp @@ -1032,11 +1032,12 @@ SecurityLevel RA::GetGlobalSecurityLevel() { * output: * @param publickey_s public key provided by DRM * @param wrappedPrivateKey_s encrypted private key provided by DRM + * @param ivParam_s returned intialization vector */ void RA::RecoverKey(RA_Session *session, const char* cuid, const char *userid, char* desKey_s, char *b64cert, char **publicKey_s, - char **wrappedPrivateKey_s, const char *connId) + char **wrappedPrivateKey_s, const char *connId, char **ivParam_s) { int status; PSHttpResponse *response = NULL; @@ -1183,6 +1184,15 @@ void RA::RecoverKey(RA_Session *session, const char* cuid, *wrappedPrivateKey_s = PL_strdup(tmp); } + tmp = ra_pb->find_val_s("iv_param"); + if ((tmp == NULL) || (tmp == "")) { + RA::Error(LL_PER_PDU, "RecoverKey", + "did not get iv_param for recovered key in DRM response"); + } else { + RA::Debug(LL_PER_PDU, "ServerSideKeyGen", "got iv_param for recovered key =%s", tmp); + *ivParam_s = PL_strdup(tmp); + } + } else {// if content is NULL or status not 200 if (content != NULL) RA::Debug("RA::RecoverKey", "response from DRM error status %ld", s); |
