SecureBinaryData CryptoECDSA::SerializePrivateKey(BTC_PRIVKEY const & privKey) { CryptoPP::Integer privateExp = privKey.GetPrivateExponent(); SecureBinaryData privKeyData(32); privateExp.Encode(privKeyData.getPtr(), privKeyData.getSize(), UNSIGNED); return privKeyData; }
bool UserDatabase::putUserKeys(unsigned long uid,const std::string& pubKey,const std::string& privKey) { Dbt key,data; init_DBT(&key,&data); int ret; const int BUFSZ=512; char buf[BUFSZ]; RawData pubKeyData(pubKey.c_str(),pubKey.length()); RawData privKeyData(privKey.c_str(),privKey.length()); int offset=pubKeyData.serialize(buf,BUFSZ); offset+=privKeyData.serialize(buf+offset,BUFSZ-offset); key.set_data( &uid ); key.set_size( sizeof(uid) ); data.set_data( buf ); data.set_size( offset ); ret = m_pkeyDB->put(NULL, &key, &data, 0); if(ret != 0) { debug("putUserKeys error : "<<uid); } return true; }