diff options
Diffstat (limited to 'net/spdy/spdy_credential_builder.cc')
-rw-r--r-- | net/spdy/spdy_credential_builder.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/spdy/spdy_credential_builder.cc b/net/spdy/spdy_credential_builder.cc index accd33d..8ddda97 100644 --- a/net/spdy/spdy_credential_builder.cc +++ b/net/spdy/spdy_credential_builder.cc @@ -55,7 +55,7 @@ int SpdyCredentialBuilder::Build(const std::string& tls_unique, public_key = public_key.substr(2, public_key.length()); // Convert the strings into a vector<unit8> - std::vector<uint8> proof_vector; + std::vector<uint8> der_signature; scoped_ptr<crypto::ECPrivateKey> private_key( crypto::ECPrivateKey::CreateFromEncryptedPrivateKeyInfo( ServerBoundCertService::kEPKIPassword, @@ -63,7 +63,13 @@ int SpdyCredentialBuilder::Build(const std::string& tls_unique, scoped_ptr<crypto::ECSignatureCreator> creator( crypto::ECSignatureCreator::Create(private_key.get())); creator->Sign(reinterpret_cast<const unsigned char *>(secret.data()), - secret.length(), &proof_vector); + secret.length(), &der_signature); + + std::vector<uint8> proof_vector; + if (!creator->DecodeSignature(der_signature, &proof_vector)) { + NOTREACHED(); + return ERR_UNEXPECTED; + } credential->slot = slot; credential->certs.push_back(public_key.as_string()); |