Fixes for PK_CALLBACKS and sniffer after DerBuffer refactor #2.

This commit is contained in:
David Garske
2016-03-08 08:45:30 -08:00
parent ce9f14f713
commit 0f93b86b61
3 changed files with 24 additions and 23 deletions

View File

@@ -13556,8 +13556,8 @@ static word32 QSH_KeyExchangeWrite(WOLFSSL* ssl, byte isServer)
#ifdef HAVE_ECC #ifdef HAVE_ECC
ret = ssl->ctx->EccSignCb(ssl, digest, digestSz, ret = ssl->ctx->EccSignCb(ssl, digest, digestSz,
encodedSig, &localSz, encodedSig, &localSz,
ssl->buffers.key.buffer, ssl->buffers.key->buffer,
ssl->buffers.key.length, ssl->buffers.key->length,
ssl->EccSignCtx); ssl->EccSignCtx);
#endif /* HAVE_ECC */ #endif /* HAVE_ECC */
#endif /*HAVE_PK_CALLBACKS */ #endif /*HAVE_PK_CALLBACKS */
@@ -13651,8 +13651,8 @@ static word32 QSH_KeyExchangeWrite(WOLFSSL* ssl, byte isServer)
ret = ssl->ctx->RsaSignCb(ssl, signBuffer, signSz, ret = ssl->ctx->RsaSignCb(ssl, signBuffer, signSz,
verify + extraSz + VERIFY_HEADER, verify + extraSz + VERIFY_HEADER,
&ioLen, &ioLen,
ssl->buffers.key.buffer, ssl->buffers.key->buffer,
ssl->buffers.key.length, ssl->buffers.key->length,
ssl->RsaSignCtx); ssl->RsaSignCtx);
#endif /* NO_RSA */ #endif /* NO_RSA */
#endif /*HAVE_PK_CALLBACKS */ #endif /*HAVE_PK_CALLBACKS */
@@ -14923,8 +14923,8 @@ int DoSessionTicket(WOLFSSL* ssl,
word32 ioLen = sigSz; word32 ioLen = sigSz;
ret = ssl->ctx->RsaSignCb(ssl, signBuffer, signSz, ret = ssl->ctx->RsaSignCb(ssl, signBuffer, signSz,
output + idx, &ioLen, output + idx, &ioLen,
ssl->buffers.key.buffer, ssl->buffers.key->buffer,
ssl->buffers.key.length, ssl->buffers.key->length,
ssl->RsaSignCtx); ssl->RsaSignCtx);
#endif /*HAVE_PK_CALLBACKS */ #endif /*HAVE_PK_CALLBACKS */
} }
@@ -15000,8 +15000,8 @@ int DoSessionTicket(WOLFSSL* ssl,
ret = ssl->ctx->EccSignCb(ssl, digest, digestSz, ret = ssl->ctx->EccSignCb(ssl, digest, digestSz,
output + LENGTH_SZ + idx, output + LENGTH_SZ + idx,
&sz, &sz,
ssl->buffers.key.buffer, ssl->buffers.key->buffer,
ssl->buffers.key.length, ssl->buffers.key->length,
ssl->EccSignCtx); ssl->EccSignCtx);
#endif #endif
} }
@@ -15581,8 +15581,8 @@ int DoSessionTicket(WOLFSSL* ssl,
word32 ioLen = sigSz; word32 ioLen = sigSz;
ret = ssl->ctx->RsaSignCb(ssl, signBuffer, signSz, ret = ssl->ctx->RsaSignCb(ssl, signBuffer, signSz,
output + idx, &ioLen, output + idx, &ioLen,
ssl->buffers.key.buffer, ssl->buffers.key->buffer,
ssl->buffers.key.length, ssl->buffers.key->length,
ssl->RsaSignCtx); ssl->RsaSignCtx);
#endif #endif
} else if (ret == 0) { } else if (ret == 0) {
@@ -17021,8 +17021,8 @@ int DoSessionTicket(WOLFSSL* ssl,
#ifdef HAVE_PK_CALLBACKS #ifdef HAVE_PK_CALLBACKS
ret = ssl->ctx->RsaDecCb(ssl, ret = ssl->ctx->RsaDecCb(ssl,
input + *inOutIdx, length, &out, input + *inOutIdx, length, &out,
ssl->buffers.key.buffer, ssl->buffers.key->buffer,
ssl->buffers.key.length, ssl->buffers.key->length,
ssl->RsaDecCtx); ssl->RsaDecCtx);
#endif #endif
} }
@@ -17168,7 +17168,7 @@ int DoSessionTicket(WOLFSSL* ssl,
word16 cipherLen; word16 cipherLen;
word16 plainLen = sizeof(ssl->arrays->preMasterSecret); word16 plainLen = sizeof(ssl->arrays->preMasterSecret);
if (!ssl->buffers.key.buffer) { if (!ssl->buffers.key || !ssl->buffers.key->buffer) {
return NO_PRIVATE_KEY; return NO_PRIVATE_KEY;
} }
@@ -17188,8 +17188,8 @@ int DoSessionTicket(WOLFSSL* ssl,
} }
if (NTRU_OK != ntru_crypto_ntru_decrypt( if (NTRU_OK != ntru_crypto_ntru_decrypt(
(word16) ssl->buffers.key.length, (word16) ssl->buffers.key->length,
ssl->buffers.key.buffer, cipherLen, ssl->buffers.key->buffer, cipherLen,
input + *inOutIdx, &plainLen, input + *inOutIdx, &plainLen,
ssl->arrays->preMasterSecret)) { ssl->arrays->preMasterSecret)) {
return NTRU_DECRYPT_ERROR; return NTRU_DECRYPT_ERROR;

View File

@@ -1341,16 +1341,17 @@ static int ProcessClientKeyExchange(const byte* input, int* sslBytes,
RsaKey key; RsaKey key;
int ret; int ret;
if (session->sslServer->buffers.key.buffer == NULL || if (session->sslServer->buffers.key == NULL ||
session->sslServer->buffers.key.length == 0) { session->sslServer->buffers.key->buffer == NULL ||
session->sslServer->buffers.key->length == 0) {
SetError(RSA_KEY_MISSING_STR, error, session, FATAL_ERROR_STATE); SetError(RSA_KEY_MISSING_STR, error, session, FATAL_ERROR_STATE);
return -1; return -1;
} }
ret = wc_InitRsaKey(&key, 0); ret = wc_InitRsaKey(&key, 0);
if (ret == 0) if (ret == 0)
ret = wc_RsaPrivateKeyDecode(session->sslServer->buffers.key.buffer, ret = wc_RsaPrivateKeyDecode(session->sslServer->buffers.key->buffer,
&idx, &key, session->sslServer->buffers.key.length); &idx, &key, session->sslServer->buffers.key->length);
if (ret == 0) { if (ret == 0) {
int length = wc_RsaEncryptSize(&key); int length = wc_RsaEncryptSize(&key);

View File

@@ -11476,10 +11476,10 @@ int wolfSSL_cmp_peer_cert_to_file(WOLFSSL* ssl, const char *fname)
(XFREAD(myBuffer, sz, 1, file) > 0) && (XFREAD(myBuffer, sz, 1, file) > 0) &&
(PemToDer(myBuffer, sz, CERT_TYPE, (PemToDer(myBuffer, sz, CERT_TYPE,
&fileDer, ctx->heap, info, &eccKey) == 0) && &fileDer, ctx->heap, info, &eccKey) == 0) &&
(fileDer.length != 0) && (fileDer->length != 0) &&
(fileDer.length == peer_cert->derCert.length) && (fileDer->length == peer_cert->derCert->length) &&
(XMEMCMP(peer_cert->derCert.buffer, fileDer.buffer, (XMEMCMP(peer_cert->derCert->buffer, fileDer->buffer,
fileDer.length) == 0)) fileDer->length) == 0))
{ {
ret = 0; ret = 0;
} }