summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2015-09-12 10:09:16 +0000
committerjsing <>2015-09-12 10:09:16 +0000
commit68941769a0e1449e5b2ef20cadf46f6dbcdc34fc (patch)
tree4fc8d60557b1bffab0c51ca536ed13124b548095 /src/lib
parent32fbd9cd51e433720fd763c2a82cc8ef2dec855c (diff)
downloadopenbsd-68941769a0e1449e5b2ef20cadf46f6dbcdc34fc.tar.gz
openbsd-68941769a0e1449e5b2ef20cadf46f6dbcdc34fc.tar.bz2
openbsd-68941769a0e1449e5b2ef20cadf46f6dbcdc34fc.zip
style(9) and whitespace cleanups.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/s3_clnt.c54
-rw-r--r--src/lib/libssl/src/ssl/s3_clnt.c54
2 files changed, 50 insertions, 58 deletions
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c
index eed359450f..1424641047 100644
--- a/src/lib/libssl/s3_clnt.c
+++ b/src/lib/libssl/s3_clnt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_clnt.c,v 1.127 2015/09/11 18:08:21 jsing Exp $ */ 1/* $OpenBSD: s3_clnt.c,v 1.128 2015/09/12 10:09:16 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1965,7 +1965,6 @@ ssl3_send_client_key_exchange(SSL *s)
1965 * make sure to clear it out afterwards. 1965 * make sure to clear it out afterwards.
1966 */ 1966 */
1967 n = DH_compute_key(p, dh_srvr->pub_key, dh_clnt); 1967 n = DH_compute_key(p, dh_srvr->pub_key, dh_clnt);
1968
1969 if (n <= 0) { 1968 if (n <= 0) {
1970 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, 1969 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
1971 ERR_R_DH_LIB); 1970 ERR_R_DH_LIB);
@@ -1995,7 +1994,6 @@ ssl3_send_client_key_exchange(SSL *s)
1995 EC_KEY *tkey; 1994 EC_KEY *tkey;
1996 int field_size = 0; 1995 int field_size = 0;
1997 1996
1998
1999 /* Ensure that we have an ephemeral key for ECDHE. */ 1997 /* Ensure that we have an ephemeral key for ECDHE. */
2000 if ((alg_k & SSL_kECDHE) && 1998 if ((alg_k & SSL_kECDHE) &&
2001 s->session->sess_cert->peer_ecdh_tmp == NULL) { 1999 s->session->sess_cert->peer_ecdh_tmp == NULL) {
@@ -2045,8 +2043,7 @@ ssl3_send_client_key_exchange(SSL *s)
2045 2043
2046 /* Generate a new ECDH key pair */ 2044 /* Generate a new ECDH key pair */
2047 if (!(EC_KEY_generate_key(clnt_ecdh))) { 2045 if (!(EC_KEY_generate_key(clnt_ecdh))) {
2048 SSLerr( 2046 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2049 SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2050 ERR_R_ECDH_LIB); 2047 ERR_R_ECDH_LIB);
2051 goto err; 2048 goto err;
2052 } 2049 }
@@ -2061,7 +2058,7 @@ ssl3_send_client_key_exchange(SSL *s)
2061 ERR_R_ECDH_LIB); 2058 ERR_R_ECDH_LIB);
2062 goto err; 2059 goto err;
2063 } 2060 }
2064 n = ECDH_compute_key(p, (field_size + 7)/8, 2061 n = ECDH_compute_key(p, (field_size + 7) / 8,
2065 srvr_ecpoint, clnt_ecdh, NULL); 2062 srvr_ecpoint, clnt_ecdh, NULL);
2066 if (n <= 0) { 2063 if (n <= 0) {
2067 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, 2064 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
@@ -2070,9 +2067,9 @@ ssl3_send_client_key_exchange(SSL *s)
2070 } 2067 }
2071 2068
2072 /* generate master key from the result */ 2069 /* generate master key from the result */
2073 s->session->master_key_length = s->method->ssl3_enc \ 2070 s->session->master_key_length =
2074 -> generate_master_secret(s, 2071 s->method->ssl3_enc->generate_master_secret(s,
2075 s->session->master_key, p, n); 2072 s->session->master_key, p, n);
2076 2073
2077 memset(p, 0, n); /* clean up */ 2074 memset(p, 0, n); /* clean up */
2078 2075
@@ -2080,19 +2077,15 @@ ssl3_send_client_key_exchange(SSL *s)
2080 * First check the size of encoding and 2077 * First check the size of encoding and
2081 * allocate memory accordingly. 2078 * allocate memory accordingly.
2082 */ 2079 */
2083 encoded_pt_len = EC_POINT_point2oct( 2080 encoded_pt_len = EC_POINT_point2oct(srvr_group,
2084 srvr_group, 2081 EC_KEY_get0_public_key(clnt_ecdh),
2085 EC_KEY_get0_public_key(clnt_ecdh), 2082 POINT_CONVERSION_UNCOMPRESSED, NULL, 0, NULL);
2086 POINT_CONVERSION_UNCOMPRESSED,
2087 NULL, 0, NULL);
2088 2083
2089 encodedPoint = malloc(encoded_pt_len); 2084 encodedPoint = malloc(encoded_pt_len);
2090 2085
2091 bn_ctx = BN_CTX_new(); 2086 bn_ctx = BN_CTX_new();
2092 if ((encodedPoint == NULL) || 2087 if ((encodedPoint == NULL) || (bn_ctx == NULL)) {
2093 (bn_ctx == NULL)) { 2088 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2094 SSLerr(
2095 SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2096 ERR_R_MALLOC_FAILURE); 2089 ERR_R_MALLOC_FAILURE);
2097 goto err; 2090 goto err;
2098 } 2091 }
@@ -2100,8 +2093,8 @@ ssl3_send_client_key_exchange(SSL *s)
2100 /* Encode the public key */ 2093 /* Encode the public key */
2101 n = EC_POINT_point2oct(srvr_group, 2094 n = EC_POINT_point2oct(srvr_group,
2102 EC_KEY_get0_public_key(clnt_ecdh), 2095 EC_KEY_get0_public_key(clnt_ecdh),
2103 POINT_CONVERSION_UNCOMPRESSED, 2096 POINT_CONVERSION_UNCOMPRESSED, encodedPoint,
2104 encodedPoint, encoded_pt_len, bn_ctx); 2097 encoded_pt_len, bn_ctx);
2105 2098
2106 *p = n; /* length of encoded point */ 2099 *p = n; /* length of encoded point */
2107 /* Encoded point will be copied here */ 2100 /* Encoded point will be copied here */
@@ -2141,34 +2134,36 @@ ssl3_send_client_key_exchange(SSL *s)
2141 pkey_ctx = EVP_PKEY_CTX_new( 2134 pkey_ctx = EVP_PKEY_CTX_new(
2142 pub_key = X509_get_pubkey(peer_cert), 2135 pub_key = X509_get_pubkey(peer_cert),
2143 NULL); 2136 NULL);
2137
2144 /* 2138 /*
2145 * If we have send a certificate, and certificate key 2139 * If we have send a certificate, and certificate key
2146 * parameters match those of server certificate, use 2140 * parameters match those of server certificate, use
2147 * certificate key for key exchange. 2141 * certificate key for key exchange.
2148 * Otherwise, generate ephemeral key pair. 2142 * Otherwise, generate ephemeral key pair.
2149 */ 2143 */
2150
2151 EVP_PKEY_encrypt_init(pkey_ctx); 2144 EVP_PKEY_encrypt_init(pkey_ctx);
2145
2152 /* Generate session key. */ 2146 /* Generate session key. */
2153 arc4random_buf(premaster_secret, 32); 2147 arc4random_buf(premaster_secret, 32);
2148
2154 /* 2149 /*
2155 * If we have client certificate, use its secret 2150 * If we have client certificate, use its secret as
2156 * as peer key. 2151 * peer key.
2157 */ 2152 */
2158 if (s->s3->tmp.cert_req && s->cert->key->privatekey) { 2153 if (s->s3->tmp.cert_req && s->cert->key->privatekey) {
2159 if (EVP_PKEY_derive_set_peer(pkey_ctx, 2154 if (EVP_PKEY_derive_set_peer(pkey_ctx,
2160 s->cert->key->privatekey) <=0) { 2155 s->cert->key->privatekey) <=0) {
2161 /* 2156 /*
2162 * If there was an error - 2157 * If there was an error - just ignore
2163 * just ignore it. Ephemeral key 2158 * it. Ephemeral key would be used.
2164 * would be used
2165 */ 2159 */
2166 ERR_clear_error(); 2160 ERR_clear_error();
2167 } 2161 }
2168 } 2162 }
2163
2169 /* 2164 /*
2170 * Compute shared IV and store it in algorithm-specific 2165 * Compute shared IV and store it in algorithm-specific
2171 * context data 2166 * context data.
2172 */ 2167 */
2173 ukm_hash = EVP_MD_CTX_create(); 2168 ukm_hash = EVP_MD_CTX_create();
2174 if (ukm_hash == NULL) { 2169 if (ukm_hash == NULL) {
@@ -2195,9 +2190,10 @@ ssl3_send_client_key_exchange(SSL *s)
2195 SSL_R_LIBRARY_BUG); 2190 SSL_R_LIBRARY_BUG);
2196 goto err; 2191 goto err;
2197 } 2192 }
2193
2198 /* 2194 /*
2199 * Make GOST keytransport blob message, 2195 * Make GOST keytransport blob message, encapsulate it
2200 * encapsulate it into sequence. 2196 * into sequence.
2201 */ 2197 */
2202 *(p++) = V_ASN1_SEQUENCE | V_ASN1_CONSTRUCTED; 2198 *(p++) = V_ASN1_SEQUENCE | V_ASN1_CONSTRUCTED;
2203 msglen = 255; 2199 msglen = 255;
diff --git a/src/lib/libssl/src/ssl/s3_clnt.c b/src/lib/libssl/src/ssl/s3_clnt.c
index eed359450f..1424641047 100644
--- a/src/lib/libssl/src/ssl/s3_clnt.c
+++ b/src/lib/libssl/src/ssl/s3_clnt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_clnt.c,v 1.127 2015/09/11 18:08:21 jsing Exp $ */ 1/* $OpenBSD: s3_clnt.c,v 1.128 2015/09/12 10:09:16 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1965,7 +1965,6 @@ ssl3_send_client_key_exchange(SSL *s)
1965 * make sure to clear it out afterwards. 1965 * make sure to clear it out afterwards.
1966 */ 1966 */
1967 n = DH_compute_key(p, dh_srvr->pub_key, dh_clnt); 1967 n = DH_compute_key(p, dh_srvr->pub_key, dh_clnt);
1968
1969 if (n <= 0) { 1968 if (n <= 0) {
1970 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, 1969 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
1971 ERR_R_DH_LIB); 1970 ERR_R_DH_LIB);
@@ -1995,7 +1994,6 @@ ssl3_send_client_key_exchange(SSL *s)
1995 EC_KEY *tkey; 1994 EC_KEY *tkey;
1996 int field_size = 0; 1995 int field_size = 0;
1997 1996
1998
1999 /* Ensure that we have an ephemeral key for ECDHE. */ 1997 /* Ensure that we have an ephemeral key for ECDHE. */
2000 if ((alg_k & SSL_kECDHE) && 1998 if ((alg_k & SSL_kECDHE) &&
2001 s->session->sess_cert->peer_ecdh_tmp == NULL) { 1999 s->session->sess_cert->peer_ecdh_tmp == NULL) {
@@ -2045,8 +2043,7 @@ ssl3_send_client_key_exchange(SSL *s)
2045 2043
2046 /* Generate a new ECDH key pair */ 2044 /* Generate a new ECDH key pair */
2047 if (!(EC_KEY_generate_key(clnt_ecdh))) { 2045 if (!(EC_KEY_generate_key(clnt_ecdh))) {
2048 SSLerr( 2046 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2049 SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2050 ERR_R_ECDH_LIB); 2047 ERR_R_ECDH_LIB);
2051 goto err; 2048 goto err;
2052 } 2049 }
@@ -2061,7 +2058,7 @@ ssl3_send_client_key_exchange(SSL *s)
2061 ERR_R_ECDH_LIB); 2058 ERR_R_ECDH_LIB);
2062 goto err; 2059 goto err;
2063 } 2060 }
2064 n = ECDH_compute_key(p, (field_size + 7)/8, 2061 n = ECDH_compute_key(p, (field_size + 7) / 8,
2065 srvr_ecpoint, clnt_ecdh, NULL); 2062 srvr_ecpoint, clnt_ecdh, NULL);
2066 if (n <= 0) { 2063 if (n <= 0) {
2067 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, 2064 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
@@ -2070,9 +2067,9 @@ ssl3_send_client_key_exchange(SSL *s)
2070 } 2067 }
2071 2068
2072 /* generate master key from the result */ 2069 /* generate master key from the result */
2073 s->session->master_key_length = s->method->ssl3_enc \ 2070 s->session->master_key_length =
2074 -> generate_master_secret(s, 2071 s->method->ssl3_enc->generate_master_secret(s,
2075 s->session->master_key, p, n); 2072 s->session->master_key, p, n);
2076 2073
2077 memset(p, 0, n); /* clean up */ 2074 memset(p, 0, n); /* clean up */
2078 2075
@@ -2080,19 +2077,15 @@ ssl3_send_client_key_exchange(SSL *s)
2080 * First check the size of encoding and 2077 * First check the size of encoding and
2081 * allocate memory accordingly. 2078 * allocate memory accordingly.
2082 */ 2079 */
2083 encoded_pt_len = EC_POINT_point2oct( 2080 encoded_pt_len = EC_POINT_point2oct(srvr_group,
2084 srvr_group, 2081 EC_KEY_get0_public_key(clnt_ecdh),
2085 EC_KEY_get0_public_key(clnt_ecdh), 2082 POINT_CONVERSION_UNCOMPRESSED, NULL, 0, NULL);
2086 POINT_CONVERSION_UNCOMPRESSED,
2087 NULL, 0, NULL);
2088 2083
2089 encodedPoint = malloc(encoded_pt_len); 2084 encodedPoint = malloc(encoded_pt_len);
2090 2085
2091 bn_ctx = BN_CTX_new(); 2086 bn_ctx = BN_CTX_new();
2092 if ((encodedPoint == NULL) || 2087 if ((encodedPoint == NULL) || (bn_ctx == NULL)) {
2093 (bn_ctx == NULL)) { 2088 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2094 SSLerr(
2095 SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,
2096 ERR_R_MALLOC_FAILURE); 2089 ERR_R_MALLOC_FAILURE);
2097 goto err; 2090 goto err;
2098 } 2091 }
@@ -2100,8 +2093,8 @@ ssl3_send_client_key_exchange(SSL *s)
2100 /* Encode the public key */ 2093 /* Encode the public key */
2101 n = EC_POINT_point2oct(srvr_group, 2094 n = EC_POINT_point2oct(srvr_group,
2102 EC_KEY_get0_public_key(clnt_ecdh), 2095 EC_KEY_get0_public_key(clnt_ecdh),
2103 POINT_CONVERSION_UNCOMPRESSED, 2096 POINT_CONVERSION_UNCOMPRESSED, encodedPoint,
2104 encodedPoint, encoded_pt_len, bn_ctx); 2097 encoded_pt_len, bn_ctx);
2105 2098
2106 *p = n; /* length of encoded point */ 2099 *p = n; /* length of encoded point */
2107 /* Encoded point will be copied here */ 2100 /* Encoded point will be copied here */
@@ -2141,34 +2134,36 @@ ssl3_send_client_key_exchange(SSL *s)
2141 pkey_ctx = EVP_PKEY_CTX_new( 2134 pkey_ctx = EVP_PKEY_CTX_new(
2142 pub_key = X509_get_pubkey(peer_cert), 2135 pub_key = X509_get_pubkey(peer_cert),
2143 NULL); 2136 NULL);
2137
2144 /* 2138 /*
2145 * If we have send a certificate, and certificate key 2139 * If we have send a certificate, and certificate key
2146 * parameters match those of server certificate, use 2140 * parameters match those of server certificate, use
2147 * certificate key for key exchange. 2141 * certificate key for key exchange.
2148 * Otherwise, generate ephemeral key pair. 2142 * Otherwise, generate ephemeral key pair.
2149 */ 2143 */
2150
2151 EVP_PKEY_encrypt_init(pkey_ctx); 2144 EVP_PKEY_encrypt_init(pkey_ctx);
2145
2152 /* Generate session key. */ 2146 /* Generate session key. */
2153 arc4random_buf(premaster_secret, 32); 2147 arc4random_buf(premaster_secret, 32);
2148
2154 /* 2149 /*
2155 * If we have client certificate, use its secret 2150 * If we have client certificate, use its secret as
2156 * as peer key. 2151 * peer key.
2157 */ 2152 */
2158 if (s->s3->tmp.cert_req && s->cert->key->privatekey) { 2153 if (s->s3->tmp.cert_req && s->cert->key->privatekey) {
2159 if (EVP_PKEY_derive_set_peer(pkey_ctx, 2154 if (EVP_PKEY_derive_set_peer(pkey_ctx,
2160 s->cert->key->privatekey) <=0) { 2155 s->cert->key->privatekey) <=0) {
2161 /* 2156 /*
2162 * If there was an error - 2157 * If there was an error - just ignore
2163 * just ignore it. Ephemeral key 2158 * it. Ephemeral key would be used.
2164 * would be used
2165 */ 2159 */
2166 ERR_clear_error(); 2160 ERR_clear_error();
2167 } 2161 }
2168 } 2162 }
2163
2169 /* 2164 /*
2170 * Compute shared IV and store it in algorithm-specific 2165 * Compute shared IV and store it in algorithm-specific
2171 * context data 2166 * context data.
2172 */ 2167 */
2173 ukm_hash = EVP_MD_CTX_create(); 2168 ukm_hash = EVP_MD_CTX_create();
2174 if (ukm_hash == NULL) { 2169 if (ukm_hash == NULL) {
@@ -2195,9 +2190,10 @@ ssl3_send_client_key_exchange(SSL *s)
2195 SSL_R_LIBRARY_BUG); 2190 SSL_R_LIBRARY_BUG);
2196 goto err; 2191 goto err;
2197 } 2192 }
2193
2198 /* 2194 /*
2199 * Make GOST keytransport blob message, 2195 * Make GOST keytransport blob message, encapsulate it
2200 * encapsulate it into sequence. 2196 * into sequence.
2201 */ 2197 */
2202 *(p++) = V_ASN1_SEQUENCE | V_ASN1_CONSTRUCTED; 2198 *(p++) = V_ASN1_SEQUENCE | V_ASN1_CONSTRUCTED;
2203 msglen = 255; 2199 msglen = 255;