Sign H Casting

1. Fix the typecasting when signing H with RSA.
2. Assign the sign return value to ret, then assign it to *sigSz if
   successful.
3. Similar change for the encoded sign value.
pull/708/head
John Safranek 2024-06-03 11:19:16 -07:00
parent 0e72885161
commit 4281ee4b4e
1 changed files with 12 additions and 4 deletions

View File

@ -10944,24 +10944,32 @@ static int SignHRsa(WOLFSSH* ssh, byte* sig, word32* sigSz,
}
if (ret == WS_SUCCESS) {
encSigSz = wc_EncodeSignature(encSig, digest, digestSz,
ret = wc_EncodeSignature(encSig, digest, digestSz,
wc_HashGetOID(hashId));
if (encSigSz <= 0) {
if (ret <= 0) {
WLOG(WS_LOG_DEBUG, "SignHRsa: Bad Encode Sig");
ret = WS_CRYPTO_FAILED;
}
else {
encSigSz = (word32)ret;
ret = WS_SUCCESS;
}
}
if (ret == WS_SUCCESS) {
WLOG(WS_LOG_INFO, "Signing hash with %s.",
IdToName(ssh->handshake->pubKeyId));
*sigSz = wc_RsaSSL_Sign(encSig, encSigSz, sig,
ret = wc_RsaSSL_Sign(encSig, encSigSz, sig,
KEX_SIG_SIZE, &sigKey->sk.rsa.key,
ssh->rng);
if (*sigSz <= 0) {
if (ret <= 0) {
WLOG(WS_LOG_DEBUG, "SignHRsa: Bad RSA Sign");
ret = WS_RSA_E;
}
else {
*sigSz = (word32)ret;
ret = WS_SUCCESS;
}
}
if (ret == WS_SUCCESS) {