You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TLSServerProtocol and DTLSServerProtocol process the certificate_verify message. They verify the signature generated by the client and should, in my understanding, throw an error if the signature is not correct.
Currently the return value of the verifyRawSignature call is not evaluate at all:
// Verify the CertificateVerify message contains a correct signature.try
{
// TODO For TLS 1.2, this needs to be the hash specified in the DigitallySignedbyte[] certificateVerifyHash = getCurrentPRFHash(getContext(), prepareFinishHash, null);
org.bouncycastle.asn1.x509.Certificatex509Cert = this.peerCertificate.getCertificateAt(0);
SubjectPublicKeyInfokeyInfo = x509Cert.getSubjectPublicKeyInfo();
AsymmetricKeyParameterpublicKey = PublicKeyFactory.createKey(keyInfo);
TlsSignertlsSigner = TlsUtils.createTlsSigner(this.clientCertificateType);
tlsSigner.init(getContext());
tlsSigner.verifyRawSignature(clientCertificateVerify.getAlgorithm(),
clientCertificateVerify.getSignature(), publicKey, certificateVerifyHash);
}
catch (Exceptione)
{
thrownewTlsFatalAlert(AlertDescription.decrypt_error);
}
The text was updated successfully, but these errors were encountered:
Thanks for this. You're correct in that the return value should be checked as well. There's some further work in this area to deal with TLS 1.2 and DTLS so we're going to try and get that done as well before issuing a new release.
This is now fixed, and test coverage has been added to vet various client-authentication scenarios (see TlsTestSuite.java). A new beta 151b12 is now available (http://downloads.bouncycastle.org/betas/) including this and other fixes.
TLSServerProtocol and DTLSServerProtocol process the certificate_verify message. They verify the signature generated by the client and should, in my understanding, throw an error if the signature is not correct.
Currently the return value of the verifyRawSignature call is not evaluate at all:
The text was updated successfully, but these errors were encountered: