@@ -34022,9 +34022,11 @@ int SendClientKeyExchange(WOLFSSL* ssl)
3402234022 {
3402334023 #ifdef HAVE_CURVE25519
3402434024 if (ssl->peerX25519KeyPresent) {
34025- ret = X25519SharedSecret(ssl,
34025+ ret = X25519SharedSecret(
34026+ ssl,
3402634027 (curve25519_key*)ssl->hsKey, ssl->peerX25519Key,
34027- args->output + OPAQUE8_LEN, &args->length,
34028+ args->output ? args->output + OPAQUE8_LEN : NULL,
34029+ &args->length,
3402834030 ssl->arrays->preMasterSecret + OPAQUE16_LEN,
3402934031 &ssl->arrays->preMasterSz,
3403034032 WOLFSSL_CLIENT_END
@@ -34043,9 +34045,11 @@ int SendClientKeyExchange(WOLFSSL* ssl)
3404334045 #endif
3404434046 #ifdef HAVE_CURVE448
3404534047 if (ssl->peerX448KeyPresent) {
34046- ret = X448SharedSecret(ssl,
34048+ ret = X448SharedSecret(
34049+ ssl,
3404734050 (curve448_key*)ssl->hsKey, ssl->peerX448Key,
34048- args->output + OPAQUE8_LEN, &args->length,
34051+ args->output ? args->output + OPAQUE8_LEN : NULL,
34052+ &args->length,
3404934053 ssl->arrays->preMasterSecret + OPAQUE16_LEN,
3405034054 &ssl->arrays->preMasterSz,
3405134055 WOLFSSL_CLIENT_END
@@ -34062,9 +34066,11 @@ int SendClientKeyExchange(WOLFSSL* ssl)
3406234066 break;
3406334067 }
3406434068 #endif
34065- ret = EccSharedSecret(ssl,
34069+ ret = EccSharedSecret(
34070+ ssl,
3406634071 (ecc_key*)ssl->hsKey, ssl->peerEccKey,
34067- args->output + OPAQUE8_LEN, &args->length,
34072+ args->output ? args->output + OPAQUE8_LEN : NULL,
34073+ &args->length,
3406834074 ssl->arrays->preMasterSecret + OPAQUE16_LEN,
3406934075 &ssl->arrays->preMasterSz,
3407034076 WOLFSSL_CLIENT_END
@@ -34090,9 +34096,11 @@ int SendClientKeyExchange(WOLFSSL* ssl)
3409034096
3409134097 #ifdef HAVE_CURVE25519
3409234098 if (ssl->peerX25519KeyPresent) {
34093- ret = X25519SharedSecret(ssl,
34099+ ret = X25519SharedSecret(
34100+ ssl,
3409434101 (curve25519_key*)ssl->hsKey, ssl->peerX25519Key,
34095- args->encSecret + OPAQUE8_LEN, &args->encSz,
34102+ args->encSecret ? args->encSecret + OPAQUE8_LEN : NULL,
34103+ &args->encSz,
3409634104 ssl->arrays->preMasterSecret,
3409734105 &ssl->arrays->preMasterSz,
3409834106 WOLFSSL_CLIENT_END
@@ -34111,9 +34119,11 @@ int SendClientKeyExchange(WOLFSSL* ssl)
3411134119 #endif
3411234120 #ifdef HAVE_CURVE448
3411334121 if (ssl->peerX448KeyPresent) {
34114- ret = X448SharedSecret(ssl,
34122+ ret = X448SharedSecret(
34123+ ssl,
3411534124 (curve448_key*)ssl->hsKey, ssl->peerX448Key,
34116- args->encSecret + OPAQUE8_LEN, &args->encSz,
34125+ args->encSecret ? args->encSecret + OPAQUE8_LEN : NULL,
34126+ &args->encSz,
3411734127 ssl->arrays->preMasterSecret,
3411834128 &ssl->arrays->preMasterSz,
3411934129 WOLFSSL_CLIENT_END
@@ -34134,12 +34144,14 @@ int SendClientKeyExchange(WOLFSSL* ssl)
3413434144 peerKey = (ssl->specs.static_ecdh) ?
3413534145 ssl->peerEccDsaKey : ssl->peerEccKey;
3413634146
34137- ret = EccSharedSecret(ssl,
34138- (ecc_key*)ssl->hsKey, peerKey,
34139- args->encSecret + OPAQUE8_LEN, &args->encSz,
34140- ssl->arrays->preMasterSecret,
34141- &ssl->arrays->preMasterSz,
34142- WOLFSSL_CLIENT_END);
34147+ ret = EccSharedSecret(
34148+ ssl,
34149+ (ecc_key*)ssl->hsKey, peerKey,
34150+ args->encSecret ? args->encSecret + OPAQUE8_LEN : NULL,
34151+ &args->encSz,
34152+ ssl->arrays->preMasterSecret,
34153+ &ssl->arrays->preMasterSz,
34154+ WOLFSSL_CLIENT_END);
3414334155
3414434156 if (!ssl->specs.static_ecdh
3414534157 #ifdef WOLFSSL_ASYNC_CRYPT
0 commit comments