| 1503 | } |
| 1504 | |
| 1505 | int LoadECPubKeyFromString(const std::string& sKeyString,int nid, EC_KEY** ppPriKey) |
| 1506 | { |
| 1507 | if( !ppPriKey) |
| 1508 | { |
| 1509 | MMERR("ERR %s prikey point null",__func__); |
| 1510 | return CRYPT_ERR_INVALID_PARAM; |
| 1511 | } |
| 1512 | EC_KEY *pPriKey = *ppPriKey; |
| 1513 | if( pPriKey ) |
| 1514 | { |
| 1515 | EC_KEY_free(pPriKey); |
| 1516 | pPriKey = NULL; |
| 1517 | } |
| 1518 | *ppPriKey = EC_KEY_new_by_curve_name(nid); |
| 1519 | const unsigned char* pcKey = (const unsigned char*)sKeyString.data(); |
| 1520 | *ppPriKey = o2i_ECPublicKey(ppPriKey,&pcKey,sKeyString.length()); |
| 1521 | if( !(*ppPriKey)) |
| 1522 | { |
| 1523 | MMERR("ERR %s fail fail",__func__); |
| 1524 | if( *ppPriKey) { EC_KEY_free( *ppPriKey);*ppPriKey = NULL;} |
| 1525 | return CRYPT_ERR_TRANSFORM_KEY; |
| 1526 | } |
| 1527 | return CRYPT_OK; |
| 1528 | } |
| 1529 | |
| 1530 | void Free_EC_KEY(EC_KEY**ppKey) |
| 1531 | { |
no test coverage detected