import golang-1.17.7-1.el9_0
This commit is contained in:
parent
a9fa186664
commit
0e0a7cdc0f
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/go-go-1.17.5-1-openssl-fips.tar.gz
|
SOURCES/go-go-1.17.7-1-openssl-fips.tar.gz
|
||||||
|
@ -1 +1 @@
|
|||||||
f0b72c96855f50d91288f1226a7660b97c1fdd73 SOURCES/go-go-1.17.5-1-openssl-fips.tar.gz
|
139fe29f985b3feda50c407d194f1a102352388a SOURCES/go-go-1.17.7-1-openssl-fips.tar.gz
|
||||||
|
@ -1,3 +1,18 @@
|
|||||||
|
diff --git a/src/crypto/ecdsa/ecdsa_test.go b/src/crypto/ecdsa/ecdsa_test.go
|
||||||
|
index d60fdb8..b90782a 100644
|
||||||
|
--- a/src/crypto/ecdsa/ecdsa_test.go
|
||||||
|
+++ b/src/crypto/ecdsa/ecdsa_test.go
|
||||||
|
@@ -323,6 +323,10 @@ func TestVectors(t *testing.T) {
|
||||||
|
h.Write(msg)
|
||||||
|
hashed := h.Sum(hashed[:0])
|
||||||
|
if boring.Enabled() {
|
||||||
|
+ // SHA-1 signatures not supported in OpenSSL 3.0
|
||||||
|
+ if ch == crypto.SHA1 {
|
||||||
|
+ expected = false
|
||||||
|
+ }
|
||||||
|
if HashVerify(pub, msg, r, s, ch) != expected {
|
||||||
|
t.Fatalf("incorrect result on line %d", lineNo)
|
||||||
|
}
|
||||||
diff --git a/src/crypto/internal/boring/aes.go b/src/crypto/internal/boring/aes.go
|
diff --git a/src/crypto/internal/boring/aes.go b/src/crypto/internal/boring/aes.go
|
||||||
index 457decf..961795a 100644
|
index 457decf..961795a 100644
|
||||||
--- a/src/crypto/internal/boring/aes.go
|
--- a/src/crypto/internal/boring/aes.go
|
||||||
@ -108,7 +123,7 @@ index e7ae80c..45c856b 100644
|
|||||||
|
|
||||||
type fail string
|
type fail string
|
||||||
diff --git a/src/crypto/internal/boring/goopenssl.h b/src/crypto/internal/boring/goopenssl.h
|
diff --git a/src/crypto/internal/boring/goopenssl.h b/src/crypto/internal/boring/goopenssl.h
|
||||||
index 745e8a4..284e845 100644
|
index 355638b..2737441 100644
|
||||||
--- a/src/crypto/internal/boring/goopenssl.h
|
--- a/src/crypto/internal/boring/goopenssl.h
|
||||||
+++ b/src/crypto/internal/boring/goopenssl.h
|
+++ b/src/crypto/internal/boring/goopenssl.h
|
||||||
@@ -14,6 +14,15 @@
|
@@ -14,6 +14,15 @@
|
||||||
@ -202,7 +217,23 @@ index 745e8a4..284e845 100644
|
|||||||
|
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
|
|
||||||
@@ -735,6 +759,7 @@ static inline int
|
@@ -711,12 +735,9 @@ _goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(GO_EVP_PKEY_CTX* ctx, int pad) {
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-static inline int
|
||||||
|
-_goboringcrypto_EVP_PKEY_CTX_set0_rsa_oaep_label(GO_EVP_PKEY_CTX *ctx, uint8_t *l, int llen)
|
||||||
|
-{
|
||||||
|
-
|
||||||
|
- return _goboringcrypto_EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)l);
|
||||||
|
-}
|
||||||
|
+DEFINEFUNC(int, EVP_PKEY_CTX_set0_rsa_oaep_label,
|
||||||
|
+ (GO_EVP_PKEY_CTX *ctx, uint8_t *l, int llen),
|
||||||
|
+ (ctx, l, llen))
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
_goboringcrypto_EVP_PKEY_CTX_set_rsa_oaep_md(GO_EVP_PKEY_CTX *ctx, const GO_EVP_MD *md)
|
||||||
|
@@ -736,6 +757,7 @@ static inline int
|
||||||
_goboringcrypto_EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md) {
|
_goboringcrypto_EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md) {
|
||||||
return _goboringcrypto_EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, EVP_PKEY_CTRL_MD, 0, (void *)md);
|
return _goboringcrypto_EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, EVP_PKEY_CTRL_MD, 0, (void *)md);
|
||||||
}
|
}
|
||||||
@ -211,122 +242,98 @@ index 745e8a4..284e845 100644
|
|||||||
_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(GO_EVP_PKEY_CTX * ctx, const GO_EVP_MD *md) {
|
_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(GO_EVP_PKEY_CTX * ctx, const GO_EVP_MD *md) {
|
||||||
return _goboringcrypto_EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA,
|
return _goboringcrypto_EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA,
|
||||||
diff --git a/src/crypto/internal/boring/openssl_port_rsa.c b/src/crypto/internal/boring/openssl_port_rsa.c
|
diff --git a/src/crypto/internal/boring/openssl_port_rsa.c b/src/crypto/internal/boring/openssl_port_rsa.c
|
||||||
index a8d047d..1936d5d 100644
|
index 92fbb36..781975c 100644
|
||||||
--- a/src/crypto/internal/boring/openssl_port_rsa.c
|
--- a/src/crypto/internal/boring/openssl_port_rsa.c
|
||||||
+++ b/src/crypto/internal/boring/openssl_port_rsa.c
|
+++ b/src/crypto/internal/boring/openssl_port_rsa.c
|
||||||
@@ -83,34 +83,51 @@ int _goboringcrypto_RSA_sign_pss_mgf1(GO_RSA *rsa, unsigned int *out_len, uint8_
|
@@ -91,31 +91,40 @@ int _goboringcrypto_RSA_sign_pss_mgf1(GO_RSA *rsa, unsigned int *out_len, uint8_
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (_goboringcrypto_EVP_PKEY_set1_RSA(pkey, rsa) <= 0)
|
if (_goboringcrypto_EVP_PKEY_set1_RSA(pkey, rsa) <= 0)
|
||||||
- return 0;
|
goto err;
|
||||||
+ return -1;
|
-
|
||||||
|
+
|
||||||
ctx = _goboringcrypto_EVP_PKEY_CTX_new(pkey, NULL /* no engine */);
|
ctx = _goboringcrypto_EVP_PKEY_CTX_new(pkey, NULL /* no engine */);
|
||||||
if (!ctx)
|
if (!ctx)
|
||||||
- return 0;
|
goto err;
|
||||||
+ return -2;
|
|
||||||
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
- if (_goboringcrypto_EVP_PKEY_sign_init(ctx) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_sign_init(ctx) <= 0)
|
||||||
- goto err;
|
- goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0)
|
||||||
+ if (_goboringcrypto_EVP_PKEY_sign_init(ctx) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_sign_init(ctx) <= 0) {
|
||||||
+ ret = -3;
|
|
||||||
goto err;
|
goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ // This is moved earlier because openssl 3.0 alpha defaults
|
+ // This is moved earlier because openssl 3.0 alpha defaults
|
||||||
+ // to sha1 in EVP_PKEY_CTRL_RSA_PADDING if unset and produces an error
|
+ // to sha1 in EVP_PKEY_CTRL_RSA_PADDING if unset and produces an error
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0) {
|
||||||
+ ret = -4;
|
|
||||||
goto err;
|
goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0) {
|
||||||
+ ret = -5;
|
|
||||||
goto err;
|
goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0) {
|
||||||
+ ret = -6;
|
|
||||||
goto err;
|
goto err;
|
||||||
-
|
-
|
||||||
+ }
|
+ }
|
||||||
+ // doesnt take null anymore
|
+ // doesnt take null anymore
|
||||||
+ if (mgf1_md)
|
+ if (mgf1_md)
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0) {
|
||||||
+ ret = -7;
|
|
||||||
+ goto err;
|
+ goto err;
|
||||||
+ }
|
+ }
|
||||||
/* Determine buffer length */
|
/* Determine buffer length */
|
||||||
- if (_goboringcrypto_EVP_PKEY_sign(ctx, NULL, &siglen, in, in_len) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_sign(ctx, NULL, &siglen, in, in_len) <= 0)
|
||||||
+ if (_goboringcrypto_EVP_PKEY_sign(ctx, NULL, &siglen, in, in_len) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_sign(ctx, NULL, &siglen, in, in_len) <= 0) {
|
||||||
+ ret = -8;
|
|
||||||
goto err;
|
goto err;
|
||||||
-
|
-
|
||||||
- if (max_out < siglen)
|
- if (max_out < siglen)
|
||||||
+ }
|
+ }
|
||||||
+ if (max_out < siglen) {
|
+ if (max_out < siglen) {
|
||||||
+ ret = -9;
|
|
||||||
goto err;
|
goto err;
|
||||||
-
|
-
|
||||||
- if (_goboringcrypto_EVP_PKEY_sign(ctx, out, &siglen, in, in_len) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_sign(ctx, out, &siglen, in, in_len) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ if (_goboringcrypto_EVP_PKEY_sign(ctx, out, &siglen, in, in_len) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_sign(ctx, out, &siglen, in, in_len) <= 0) {
|
||||||
+ ret = -10;
|
|
||||||
goto err;
|
goto err;
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
*out_len = siglen;
|
*out_len = siglen;
|
||||||
ret = 1;
|
ret = 1;
|
||||||
@@ -130,27 +147,41 @@ int _goboringcrypto_RSA_verify_pss_mgf1(RSA *rsa, const uint8_t *msg, unsigned i
|
@@ -142,23 +151,31 @@ int _goboringcrypto_RSA_verify_pss_mgf1(RSA *rsa, const uint8_t *msg, unsigned i
|
||||||
|
|
||||||
pkey = _goboringcrypto_EVP_PKEY_new();
|
|
||||||
if (!pkey)
|
|
||||||
- return 0;
|
|
||||||
+ return -1;
|
|
||||||
|
|
||||||
if (_goboringcrypto_EVP_PKEY_set1_RSA(pkey, rsa) <= 0)
|
if (_goboringcrypto_EVP_PKEY_set1_RSA(pkey, rsa) <= 0)
|
||||||
- return 0;
|
goto err;
|
||||||
+ return -2;
|
-
|
||||||
|
+
|
||||||
ctx = _goboringcrypto_EVP_PKEY_CTX_new(pkey, NULL /* no engine */);
|
ctx = _goboringcrypto_EVP_PKEY_CTX_new(pkey, NULL /* no engine */);
|
||||||
if (!ctx)
|
if (!ctx)
|
||||||
- return 0;
|
goto err;
|
||||||
+ return -3;
|
|
||||||
|
|
||||||
- if (_goboringcrypto_EVP_PKEY_verify_init(ctx) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_verify_init(ctx) <= 0)
|
||||||
- goto err;
|
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0)
|
|
||||||
+ if (_goboringcrypto_EVP_PKEY_verify_init(ctx) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_verify_init(ctx) <= 0) {
|
||||||
+ ret = -4;
|
|
||||||
goto err;
|
goto err;
|
||||||
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0)
|
||||||
|
- goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING) <= 0) {
|
||||||
+ ret = -5;
|
|
||||||
goto err;
|
goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, salt_len) <= 0) {
|
||||||
+ ret = -6;
|
|
||||||
goto err;
|
goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_signature_md(ctx, md) <= 0) {
|
||||||
+ ret = -7;
|
|
||||||
goto err;
|
goto err;
|
||||||
- if (_goboringcrypto_EVP_PKEY_verify(ctx, sig, sig_len, msg, msg_len) <= 0)
|
- if (_goboringcrypto_EVP_PKEY_verify(ctx, sig, sig_len, msg, msg_len) <= 0)
|
||||||
+ }
|
+ }
|
||||||
+ // doesnt take null anymore
|
+ // doesnt take null anymore
|
||||||
+ if (mgf1_md)
|
+ if (mgf1_md)
|
||||||
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, mgf1_md) <= 0) {
|
||||||
+ ret = -8;
|
|
||||||
+ goto err;
|
+ goto err;
|
||||||
+ }
|
+ }
|
||||||
+ if (_goboringcrypto_EVP_PKEY_verify(ctx, sig, sig_len, msg, msg_len) <= 0) {
|
+ if (_goboringcrypto_EVP_PKEY_verify(ctx, sig, sig_len, msg, msg_len) <= 0) {
|
||||||
+ ret = -9;
|
|
||||||
goto err;
|
goto err;
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
@ -346,10 +353,21 @@ index ff5c439..6047d65 100644
|
|||||||
return len(b), nil
|
return len(b), nil
|
||||||
}
|
}
|
||||||
diff --git a/src/crypto/internal/boring/rsa.go b/src/crypto/internal/boring/rsa.go
|
diff --git a/src/crypto/internal/boring/rsa.go b/src/crypto/internal/boring/rsa.go
|
||||||
index 0223243..b72af0d 100644
|
index b3a907f..b74e7a9 100644
|
||||||
--- a/src/crypto/internal/boring/rsa.go
|
--- a/src/crypto/internal/boring/rsa.go
|
||||||
+++ b/src/crypto/internal/boring/rsa.go
|
+++ b/src/crypto/internal/boring/rsa.go
|
||||||
@@ -141,7 +141,7 @@ func setupRSA(withKey func(func(*C.GO_RSA) C.int) C.int,
|
@@ -120,7 +120,9 @@ func (k *PrivateKeyRSA) withKey(f func(*C.GO_RSA) C.int) C.int {
|
||||||
|
|
||||||
|
func setupRSA(withKey func(func(*C.GO_RSA) C.int) C.int,
|
||||||
|
padding C.int, h hash.Hash, label []byte, saltLen int, ch crypto.Hash,
|
||||||
|
- init func(*C.GO_EVP_PKEY_CTX) C.int) (pkey *C.GO_EVP_PKEY, ctx *C.GO_EVP_PKEY_CTX, err error) {
|
||||||
|
+ init func(*C.GO_EVP_PKEY_CTX) C.int) (_pkey *C.GO_EVP_PKEY, _ctx *C.GO_EVP_PKEY_CTX, err error) {
|
||||||
|
+ var pkey *C.GO_EVP_PKEY
|
||||||
|
+ var ctx *C.GO_EVP_PKEY_CTX
|
||||||
|
defer func() {
|
||||||
|
if err != nil {
|
||||||
|
if pkey != nil {
|
||||||
|
@@ -141,7 +143,7 @@ func setupRSA(withKey func(func(*C.GO_RSA) C.int) C.int,
|
||||||
if withKey(func(key *C.GO_RSA) C.int {
|
if withKey(func(key *C.GO_RSA) C.int {
|
||||||
return C._goboringcrypto_EVP_PKEY_set1_RSA(pkey, key)
|
return C._goboringcrypto_EVP_PKEY_set1_RSA(pkey, key)
|
||||||
}) == 0 {
|
}) == 0 {
|
||||||
@ -358,16 +376,36 @@ index 0223243..b72af0d 100644
|
|||||||
}
|
}
|
||||||
ctx = C._goboringcrypto_EVP_PKEY_CTX_new(pkey, nil)
|
ctx = C._goboringcrypto_EVP_PKEY_CTX_new(pkey, nil)
|
||||||
if ctx == nil {
|
if ctx == nil {
|
||||||
@@ -164,7 +164,7 @@ func setupRSA(withKey func(func(*C.GO_RSA) C.int) C.int,
|
@@ -162,23 +164,12 @@ func setupRSA(withKey func(func(*C.GO_RSA) C.int) C.int,
|
||||||
|
return nil, nil, NewOpenSSLError("EVP_PKEY_set_rsa_oaep_md failed")
|
||||||
|
}
|
||||||
// ctx takes ownership of label, so malloc a copy for BoringCrypto to free.
|
// ctx takes ownership of label, so malloc a copy for BoringCrypto to free.
|
||||||
clabel := (*C.uint8_t)(C.malloc(C.size_t(len(label))))
|
- var clabel *C.uint8_t
|
||||||
if clabel == nil {
|
- clabel = nil
|
||||||
- return nil, nil, fail("OPENSSL_malloc")
|
- // OpenSSL 1.1.1 does not take ownership of the label if the length is zero.
|
||||||
|
- // Depending on the malloc implementation, if clabel is allocated with malloc(0),
|
||||||
|
- // metadata for the size-zero allocation is never cleaned up, which is a memory leak.
|
||||||
|
- // As such, we must only allocate clabel if the label is of non zero length.
|
||||||
|
- if len(label) > 0 {
|
||||||
|
- clabel = (*C.uint8_t)(C.malloc(C.size_t(len(label))))
|
||||||
|
- if clabel == nil {
|
||||||
|
- return nil, nil, fail("OPENSSL_malloc")
|
||||||
|
- }
|
||||||
|
- copy((*[1 << 30]byte)(unsafe.Pointer(clabel))[:len(label)], label)
|
||||||
|
+ clabel := (*C.uint8_t)(C.malloc(C.size_t(len(label))))
|
||||||
|
+ if clabel == nil {
|
||||||
+ return nil, nil, NewOpenSSLError("OPENSSL_malloc")
|
+ return nil, nil, NewOpenSSLError("OPENSSL_malloc")
|
||||||
}
|
}
|
||||||
copy((*[1 << 30]byte)(unsafe.Pointer(clabel))[:len(label)], label)
|
- if C._goboringcrypto_EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, clabel, C.int(len(label))) != 1 {
|
||||||
if C._goboringcrypto_EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, clabel, C.int(len(label))) == 0 {
|
- if clabel != nil {
|
||||||
@@ -265,12 +265,13 @@ func SignRSAPSS(priv *PrivateKeyRSA, h crypto.Hash, hashed []byte, saltLen int)
|
- C.free(unsafe.Pointer(clabel))
|
||||||
|
- }
|
||||||
|
+ copy((*[1 << 30]byte)(unsafe.Pointer(clabel))[:len(label)], label)
|
||||||
|
+ if C._goboringcrypto_EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, clabel, C.int(len(label))) == 0 {
|
||||||
|
return nil, nil, NewOpenSSLError("EVP_PKEY_CTX_set0_rsa_oaep_label failed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -276,12 +267,13 @@ func SignRSAPSS(priv *PrivateKeyRSA, h crypto.Hash, hashed []byte, saltLen int)
|
||||||
}
|
}
|
||||||
var out []byte
|
var out []byte
|
||||||
var outLen C.uint
|
var outLen C.uint
|
||||||
@ -384,7 +422,7 @@ index 0223243..b72af0d 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
return out[:outLen], nil
|
return out[:outLen], nil
|
||||||
@@ -284,11 +285,12 @@ func VerifyRSAPSS(pub *PublicKeyRSA, h crypto.Hash, hashed, sig []byte, saltLen
|
@@ -295,11 +287,12 @@ func VerifyRSAPSS(pub *PublicKeyRSA, h crypto.Hash, hashed, sig []byte, saltLen
|
||||||
if saltLen == 0 {
|
if saltLen == 0 {
|
||||||
saltLen = -2 // auto-recover
|
saltLen = -2 // auto-recover
|
||||||
}
|
}
|
||||||
@ -770,6 +808,27 @@ index 6a5a93f..2032b4b 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
diff --git a/src/crypto/rsa/rsa.go b/src/crypto/rsa/rsa.go
|
||||||
|
index 24e2d22..1fd5a9a 100644
|
||||||
|
--- a/src/crypto/rsa/rsa.go
|
||||||
|
+++ b/src/crypto/rsa/rsa.go
|
||||||
|
@@ -35,6 +35,7 @@ import (
|
||||||
|
"crypto/internal/boring"
|
||||||
|
"crypto/internal/randutil"
|
||||||
|
"unsafe"
|
||||||
|
+ "fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var bigZero = big.NewInt(0)
|
||||||
|
@@ -664,7 +665,7 @@ func DecryptOAEP(hash hash.Hash, random io.Reader, priv *PrivateKey, ciphertext
|
||||||
|
}
|
||||||
|
out, err := boring.DecryptRSAOAEP(hash, bkey, ciphertext, label)
|
||||||
|
if err != nil {
|
||||||
|
- return nil, ErrDecryption
|
||||||
|
+ return nil, fmt.Errorf("decryption error: %s", err)
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
diff --git a/src/crypto/rsa/rsa_test.go b/src/crypto/rsa/rsa_test.go
|
diff --git a/src/crypto/rsa/rsa_test.go b/src/crypto/rsa/rsa_test.go
|
||||||
index d9693a7..cfe020e 100644
|
index d9693a7..cfe020e 100644
|
||||||
--- a/src/crypto/rsa/rsa_test.go
|
--- a/src/crypto/rsa/rsa_test.go
|
||||||
@ -1048,7 +1107,7 @@ index 94a24ff..577bc73 100644
|
|||||||
block, _ := pem.Decode([]byte(`
|
block, _ := pem.Decode([]byte(`
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
diff --git a/src/crypto/x509/x509_test.go b/src/crypto/x509/x509_test.go
|
diff --git a/src/crypto/x509/x509_test.go b/src/crypto/x509/x509_test.go
|
||||||
index a4053ab..aff4ff2 100644
|
index 449379f..801a954 100644
|
||||||
--- a/src/crypto/x509/x509_test.go
|
--- a/src/crypto/x509/x509_test.go
|
||||||
+++ b/src/crypto/x509/x509_test.go
|
+++ b/src/crypto/x509/x509_test.go
|
||||||
@@ -151,6 +151,7 @@ func TestPKIXMismatchPublicKeyFormat(t *testing.T) {
|
@@ -151,6 +151,7 @@ func TestPKIXMismatchPublicKeyFormat(t *testing.T) {
|
||||||
|
@ -96,7 +96,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global go_api 1.17
|
%global go_api 1.17
|
||||||
%global go_version 1.17.5
|
%global go_version 1.17.7
|
||||||
%global pkg_release 1
|
%global pkg_release 1
|
||||||
|
|
||||||
Name: golang
|
Name: golang
|
||||||
@ -522,6 +522,12 @@ cd ..
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 17 2022 David Benoit <dbenoit@redhat.com> - 1.17.7-1
|
||||||
|
- Rebase to Go 1.17.7
|
||||||
|
- Update ecdsa tests to reject SHA1 signatures in boring mode
|
||||||
|
- Resolves: rhbz#2025637
|
||||||
|
- Resolves: rhbz#1975396
|
||||||
|
|
||||||
* Mon Dec 13 2021 Alejandro Sáez <asm@redhat.com> - 1.17.5-1
|
* Mon Dec 13 2021 Alejandro Sáez <asm@redhat.com> - 1.17.5-1
|
||||||
- Rebase to Go 1.17.5
|
- Rebase to Go 1.17.5
|
||||||
- Add remove_waitgroup_misuse_tests patch
|
- Add remove_waitgroup_misuse_tests patch
|
||||||
|
Loading…
Reference in New Issue
Block a user