import golang-1.19.2-4.module+el8.8.0+17327+0baa7998
This commit is contained in:
parent
50de876067
commit
8856a18b10
348
SOURCES/enable-big-endian-fips-mode.patch
Normal file
348
SOURCES/enable-big-endian-fips-mode.patch
Normal file
@ -0,0 +1,348 @@
|
|||||||
|
diff --git a/src/vendor/github.com/golang-fips/openssl-fips/openssl/ecdsa.go b/src/vendor/github.com/golang-fips/openssl-fips/openssl/ecdsa.go
|
||||||
|
index b3501400e0..5e1e789da0 100644
|
||||||
|
--- a/src/vendor/github.com/golang-fips/openssl-fips/openssl/ecdsa.go
|
||||||
|
+++ b/src/vendor/github.com/golang-fips/openssl-fips/openssl/ecdsa.go
|
||||||
|
@@ -131,7 +131,7 @@ func NewPrivateKeyECDSA(curve string, X, Y BigInt, D BigInt) (*PrivateKeyECDSA,
|
||||||
|
func HashSignECDSA(priv *PrivateKeyECDSA, hash []byte, h crypto.Hash) (*big.Int, *big.Int, error) {
|
||||||
|
size := C._goboringcrypto_ECDSA_size(priv.key)
|
||||||
|
sig := make([]byte, size)
|
||||||
|
- var sigLen C.uint
|
||||||
|
+ var sigLen C.size_t
|
||||||
|
md := cryptoHashToMD(h)
|
||||||
|
if md == nil {
|
||||||
|
panic("boring: invalid hash")
|
||||||
|
diff --git a/src/vendor/github.com/golang-fips/openssl-fips/openssl/goopenssl.h b/src/vendor/github.com/golang-fips/openssl-fips/openssl/goopenssl.h
|
||||||
|
index 411fefdf78..217b320e4a 100644
|
||||||
|
--- a/src/vendor/github.com/golang-fips/openssl-fips/openssl/goopenssl.h
|
||||||
|
+++ b/src/vendor/github.com/golang-fips/openssl-fips/openssl/goopenssl.h
|
||||||
|
@@ -218,10 +218,16 @@ DEFINEFUNC(const GO_EVP_MD *, EVP_sha512, (void), ())
|
||||||
|
DEFINEFUNC(const GO_EVP_MD *, EVP_md_null, (void), ())
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x30000000L
|
||||||
|
DEFINEFUNCINTERNAL(int, EVP_MD_type, (const GO_EVP_MD *arg0), (arg0))
|
||||||
|
+DEFINEFUNCINTERNAL(size_t, EVP_MD_size, (const GO_EVP_MD *arg0), (arg0))
|
||||||
|
+static inline int
|
||||||
|
+_goboringcrypto_EVP_MD_get_size(const GO_EVP_MD *arg0)
|
||||||
|
+{
|
||||||
|
+ return _goboringcrypto_internal_EVP_MD_size(arg0);
|
||||||
|
+}
|
||||||
|
#else
|
||||||
|
DEFINEFUNCINTERNAL(int, EVP_MD_get_type, (const GO_EVP_MD *arg0), (arg0))
|
||||||
|
+DEFINEFUNC(size_t, EVP_MD_get_size, (const GO_EVP_MD *arg0), (arg0))
|
||||||
|
#endif
|
||||||
|
-DEFINEFUNCINTERNAL(size_t, EVP_MD_size, (const GO_EVP_MD *arg0), (arg0))
|
||||||
|
DEFINEFUNCINTERNAL(const GO_EVP_MD*, EVP_md5_sha1, (void), ())
|
||||||
|
|
||||||
|
# include <openssl/md5.h>
|
||||||
|
@@ -275,26 +281,16 @@ DEFINEFUNC(void, HMAC_CTX_free, (GO_HMAC_CTX * arg0), (arg0))
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
|
static inline size_t
|
||||||
|
_goboringcrypto_HMAC_size(const GO_HMAC_CTX* arg0) {
|
||||||
|
- return _goboringcrypto_internal_EVP_MD_size(arg0->md);
|
||||||
|
+ return _goboringcrypto_EVP_MD_get_size(arg0->md);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
DEFINEFUNCINTERNAL(const EVP_MD*, HMAC_CTX_get_md, (const GO_HMAC_CTX* ctx), (ctx))
|
||||||
|
-# if OPENSSL_VERSION_NUMBER < 0x30000000L
|
||||||
|
-static inline size_t
|
||||||
|
-_goboringcrypto_HMAC_size(const GO_HMAC_CTX* arg0) {
|
||||||
|
- const EVP_MD* md;
|
||||||
|
- md = _goboringcrypto_internal_HMAC_CTX_get_md(arg0);
|
||||||
|
- return _goboringcrypto_internal_EVP_MD_size(md);
|
||||||
|
-}
|
||||||
|
-# else
|
||||||
|
-DEFINEFUNCINTERNAL(size_t, EVP_MD_get_size, (const GO_EVP_MD *arg0), (arg0))
|
||||||
|
static inline size_t
|
||||||
|
_goboringcrypto_HMAC_size(const GO_HMAC_CTX* arg0) {
|
||||||
|
const EVP_MD* md;
|
||||||
|
md = _goboringcrypto_internal_HMAC_CTX_get_md(arg0);
|
||||||
|
- return _goboringcrypto_internal_EVP_MD_get_size(md);
|
||||||
|
+ return _goboringcrypto_EVP_MD_get_size(md);
|
||||||
|
}
|
||||||
|
-# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
|
@@ -370,6 +366,7 @@ DEFINEFUNC(unsigned int, BN_num_bits, (const GO_BIGNUM *arg0), (arg0))
|
||||||
|
DEFINEFUNC(int, BN_is_negative, (const GO_BIGNUM *arg0), (arg0))
|
||||||
|
DEFINEFUNC(GO_BIGNUM *, BN_bin2bn, (const uint8_t *arg0, size_t arg1, GO_BIGNUM *arg2), (arg0, arg1, arg2))
|
||||||
|
DEFINEFUNC(GO_BIGNUM *, BN_lebin2bn, (const unsigned char *s, size_t len, BIGNUM *ret), (s, len, ret))
|
||||||
|
+DEFINEFUNC(int, BN_bn2binpad, (const BIGNUM *a, unsigned char *to, size_t tolen), (a, to, tolen))
|
||||||
|
DEFINEFUNC(int, BN_bn2lebinpad, (const BIGNUM *a, unsigned char *to, size_t tolen), (a, to, tolen))
|
||||||
|
|
||||||
|
static inline unsigned int
|
||||||
|
@@ -418,7 +415,7 @@ typedef ECDSA_SIG GO_ECDSA_SIG;
|
||||||
|
DEFINEFUNC(GO_ECDSA_SIG *, ECDSA_SIG_new, (void), ())
|
||||||
|
DEFINEFUNC(void, ECDSA_SIG_free, (GO_ECDSA_SIG * arg0), (arg0))
|
||||||
|
DEFINEFUNC(GO_ECDSA_SIG *, ECDSA_do_sign, (const uint8_t *arg0, size_t arg1, const GO_EC_KEY *arg2), (arg0, arg1, arg2))
|
||||||
|
-DEFINEFUNC(int, ECDSA_do_verify, (const uint8_t *arg0, size_t arg1, const GO_ECDSA_SIG *arg2, const GO_EC_KEY *arg3), (arg0, arg1, arg2, arg3))
|
||||||
|
+DEFINEFUNC(int, ECDSA_do_verify, (const uint8_t *arg0, size_t arg1, const GO_ECDSA_SIG *arg2, GO_EC_KEY *arg3), (arg0, arg1, arg2, arg3))
|
||||||
|
DEFINEFUNC(size_t, ECDSA_size, (const GO_EC_KEY *arg0), (arg0))
|
||||||
|
|
||||||
|
DEFINEFUNCINTERNAL(int, ECDSA_sign,
|
||||||
|
@@ -453,25 +450,25 @@ _goboringcrypto_EVP_PKEY_assign_RSA(EVP_PKEY *pkey, RSA *rsa) {
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINEFUNC(int, EVP_DigestSignInit,
|
||||||
|
- (EVP_MD_CTX* ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, const EVP_PKEY *pkey),
|
||||||
|
+ (EVP_MD_CTX* ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey),
|
||||||
|
(ctx, pctx, type, e, pkey))
|
||||||
|
|
||||||
|
DEFINEFUNC(int, EVP_DigestUpdate,
|
||||||
|
(EVP_MD_CTX* ctx, const void *d, size_t cnt),
|
||||||
|
(ctx, d, cnt))
|
||||||
|
DEFINEFUNC(int, EVP_DigestSignFinal,
|
||||||
|
- (EVP_MD_CTX* ctx, unsigned char *sig, unsigned int *siglen),
|
||||||
|
+ (EVP_MD_CTX* ctx, unsigned char *sig, size_t *siglen),
|
||||||
|
(ctx, sig, siglen))
|
||||||
|
|
||||||
|
DEFINEFUNC(int, EVP_DigestVerifyInit,
|
||||||
|
- (EVP_MD_CTX* ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, const EVP_PKEY *pkey),
|
||||||
|
+ (EVP_MD_CTX* ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey),
|
||||||
|
(ctx, pctx, type, e, pkey))
|
||||||
|
DEFINEFUNC(int, EVP_DigestVerifyFinal,
|
||||||
|
(EVP_MD_CTX* ctx, const uint8_t *sig, unsigned int siglen),
|
||||||
|
(ctx, sig, siglen))
|
||||||
|
|
||||||
|
typedef RSA GO_RSA;
|
||||||
|
-int _goboringcrypto_EVP_sign(EVP_MD* md, EVP_PKEY_CTX *ctx, const uint8_t *msg, size_t msgLen, uint8_t *sig, unsigned int *slen, EVP_PKEY *eckey);
|
||||||
|
+int _goboringcrypto_EVP_sign(EVP_MD* md, EVP_PKEY_CTX *ctx, const uint8_t *msg, size_t msgLen, uint8_t *sig, size_t *slen, EVP_PKEY *eckey);
|
||||||
|
int _goboringcrypto_EVP_sign_raw(EVP_MD *md, EVP_PKEY_CTX *ctx, const uint8_t *msg,
|
||||||
|
size_t msgLen, uint8_t *sig, size_t *slen,
|
||||||
|
GO_RSA *key);
|
||||||
|
@@ -490,7 +487,7 @@ static inline void _goboringcrypto_EVP_MD_CTX_free(EVP_MD_CTX *ctx) {
|
||||||
|
DEFINEFUNC(void, EVP_MD_CTX_free, (EVP_MD_CTX *ctx), (ctx))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-int _goboringcrypto_ECDSA_sign(EVP_MD *md, const uint8_t *arg1, size_t arg2, uint8_t *arg3, unsigned int *arg4, GO_EC_KEY *arg5);
|
||||||
|
+int _goboringcrypto_ECDSA_sign(EVP_MD *md, const uint8_t *arg1, size_t arg2, uint8_t *arg3, size_t *arg4, GO_EC_KEY *arg5);
|
||||||
|
int _goboringcrypto_ECDSA_verify(EVP_MD *md, const uint8_t *arg1, size_t arg2, const uint8_t *arg3, unsigned int arg4, GO_EC_KEY *arg5);
|
||||||
|
|
||||||
|
#include <openssl/rsa.h>
|
||||||
|
@@ -498,7 +495,7 @@ int _goboringcrypto_ECDSA_verify(EVP_MD *md, const uint8_t *arg1, size_t arg2, c
|
||||||
|
// Note: order of struct fields here is unchecked.
|
||||||
|
typedef BN_GENCB GO_BN_GENCB;
|
||||||
|
|
||||||
|
-int _goboringcrypto_EVP_RSA_sign(EVP_MD* md, const uint8_t *msg, unsigned int msgLen, uint8_t *sig, unsigned int *slen, RSA *rsa);
|
||||||
|
+int _goboringcrypto_EVP_RSA_sign(EVP_MD* md, const uint8_t *msg, unsigned int msgLen, uint8_t *sig, size_t *slen, RSA *rsa);
|
||||||
|
int _goboringcrypto_EVP_RSA_verify(EVP_MD* md, const uint8_t *msg, unsigned int msgLen, const uint8_t *sig, unsigned int slen, GO_RSA *rsa);
|
||||||
|
|
||||||
|
DEFINEFUNC(GO_RSA *, RSA_new, (void), ())
|
||||||
|
@@ -800,10 +797,10 @@ _goboringcrypto_EVP_PKEY_CTX_set_rsa_mgf1_md(GO_EVP_PKEY_CTX * ctx, const GO_EVP
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINEFUNC(int, EVP_PKEY_decrypt,
|
||||||
|
- (GO_EVP_PKEY_CTX * arg0, uint8_t *arg1, unsigned int *arg2, const uint8_t *arg3, unsigned int arg4),
|
||||||
|
+ (GO_EVP_PKEY_CTX * arg0, uint8_t *arg1, size_t *arg2, const uint8_t *arg3, size_t arg4),
|
||||||
|
(arg0, arg1, arg2, arg3, arg4))
|
||||||
|
DEFINEFUNC(int, EVP_PKEY_encrypt,
|
||||||
|
- (GO_EVP_PKEY_CTX * arg0, uint8_t *arg1, unsigned int *arg2, const uint8_t *arg3, unsigned int arg4),
|
||||||
|
+ (GO_EVP_PKEY_CTX * arg0, uint8_t *arg1, size_t *arg2, const uint8_t *arg3, size_t arg4),
|
||||||
|
(arg0, arg1, arg2, arg3, arg4))
|
||||||
|
DEFINEFUNC(int, EVP_PKEY_decrypt_init, (GO_EVP_PKEY_CTX * arg0), (arg0))
|
||||||
|
DEFINEFUNC(int, EVP_PKEY_encrypt_init, (GO_EVP_PKEY_CTX * arg0), (arg0))
|
||||||
|
diff --git a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl.go b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl.go
|
||||||
|
index 86d7c6c212..2f45dabca2 100644
|
||||||
|
--- a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl.go
|
||||||
|
+++ b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl.go
|
||||||
|
@@ -14,6 +14,7 @@ package openssl
|
||||||
|
*/
|
||||||
|
import "C"
|
||||||
|
import (
|
||||||
|
+ "encoding/binary"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"math/bits"
|
||||||
|
@@ -184,25 +185,73 @@ type fail string
|
||||||
|
|
||||||
|
func (e fail) Error() string { return "boringcrypto: " + string(e) + " failed" }
|
||||||
|
|
||||||
|
-func wbase(b BigInt) *C.uint8_t {
|
||||||
|
- if len(b) == 0 {
|
||||||
|
- return nil
|
||||||
|
+const wordBytes = bits.UintSize / 8
|
||||||
|
+
|
||||||
|
+// These two functions were copied from `math/big` package, which
|
||||||
|
+// defines `big.Int` with a similar representation.
|
||||||
|
+func (z BigInt) writeBytes(buf []byte) (i int) {
|
||||||
|
+ i = len(buf)
|
||||||
|
+ for _, d := range z {
|
||||||
|
+ for j := 0; j < wordBytes; j++ {
|
||||||
|
+ i--
|
||||||
|
+ if i >= 0 {
|
||||||
|
+ buf[i] = byte(d)
|
||||||
|
+ } else if byte(d) != 0 {
|
||||||
|
+ panic("boringcrypto: buffer too small to fit value")
|
||||||
|
+ }
|
||||||
|
+ d >>= 8
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if i < 0 {
|
||||||
|
+ i = 0
|
||||||
|
+ }
|
||||||
|
+ for i < len(buf) && buf[i] == 0 {
|
||||||
|
+ i++
|
||||||
|
}
|
||||||
|
- return (*C.uint8_t)(unsafe.Pointer(&b[0]))
|
||||||
|
+
|
||||||
|
+ return
|
||||||
|
}
|
||||||
|
|
||||||
|
-const wordBytes = bits.UintSize / 8
|
||||||
|
+func bytesToBig(buf []byte) BigInt {
|
||||||
|
+ z := make(BigInt, (len(buf) + wordBytes - 1) / wordBytes)
|
||||||
|
+ i := len(buf)
|
||||||
|
+ for k := 0; i >= wordBytes; k++ {
|
||||||
|
+ if bits.UintSize == 64 {
|
||||||
|
+ z[k] = uint(binary.BigEndian.Uint64(buf[i-wordBytes : i]))
|
||||||
|
+ } else {
|
||||||
|
+ z[k] = uint(binary.BigEndian.Uint32(buf[i-wordBytes : i]))
|
||||||
|
+ }
|
||||||
|
+ i -= wordBytes
|
||||||
|
+ }
|
||||||
|
+ if i > 0 {
|
||||||
|
+ var d uint
|
||||||
|
+ for s := uint(0); i > 0; s += 8 {
|
||||||
|
+ d |= uint(buf[i-1]) << s
|
||||||
|
+ i--
|
||||||
|
+ }
|
||||||
|
+ z[len(z)-1] = d
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ i = len(z)
|
||||||
|
+ for i > 0 && z[i-1] == 0 {
|
||||||
|
+ i--
|
||||||
|
+ }
|
||||||
|
+ return z[0:i]
|
||||||
|
+}
|
||||||
|
|
||||||
|
func bigToBN(x BigInt) *C.GO_BIGNUM {
|
||||||
|
- return C._goboringcrypto_BN_lebin2bn(wbase(x), C.size_t(len(x)*wordBytes), nil)
|
||||||
|
+ buf := make([]byte, len(x)*wordBytes)
|
||||||
|
+ buf = buf[x.writeBytes(buf):]
|
||||||
|
+ return C._goboringcrypto_BN_bin2bn(base(buf), C.size_t(len(buf)), nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func bnToBig(bn *C.GO_BIGNUM) BigInt {
|
||||||
|
- x := make(BigInt, (C._goboringcrypto_BN_num_bytes(bn)+wordBytes-1)/wordBytes)
|
||||||
|
- if C._goboringcrypto_BN_bn2lebinpad(bn, wbase(x), C.size_t(len(x)*wordBytes)) == 0 {
|
||||||
|
+ buf := make([]byte, C._goboringcrypto_BN_num_bytes(bn))
|
||||||
|
+ if C._goboringcrypto_BN_bn2binpad(bn, base(buf), C.size_t(len(buf))) == 0 {
|
||||||
|
panic("boringcrypto: bignum conversion failed")
|
||||||
|
}
|
||||||
|
- return x
|
||||||
|
+ return bytesToBig(buf)
|
||||||
|
}
|
||||||
|
|
||||||
|
func bigToBn(bnp **C.GO_BIGNUM, b BigInt) bool {
|
||||||
|
diff --git a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_ecdsa_signature.c b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_ecdsa_signature.c
|
||||||
|
index 2349db1fd9..714d18f1e8 100644
|
||||||
|
--- a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_ecdsa_signature.c
|
||||||
|
+++ b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_ecdsa_signature.c
|
||||||
|
@@ -7,7 +7,7 @@
|
||||||
|
#include "goopenssl.h"
|
||||||
|
|
||||||
|
int _goboringcrypto_ECDSA_sign(EVP_MD *md, const uint8_t *msg, size_t msgLen,
|
||||||
|
- uint8_t *sig, unsigned int *slen,
|
||||||
|
+ uint8_t *sig, size_t *slen,
|
||||||
|
GO_EC_KEY *eckey) {
|
||||||
|
int result;
|
||||||
|
EVP_PKEY *key = _goboringcrypto_EVP_PKEY_new();
|
||||||
|
diff --git a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_evp.c b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_evp.c
|
||||||
|
index 43790198c6..76bac5bc01 100644
|
||||||
|
--- a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_evp.c
|
||||||
|
+++ b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_evp.c
|
||||||
|
@@ -7,7 +7,7 @@
|
||||||
|
#include "goopenssl.h"
|
||||||
|
|
||||||
|
int _goboringcrypto_EVP_sign(EVP_MD *md, EVP_PKEY_CTX *ctx, const uint8_t *msg,
|
||||||
|
- size_t msgLen, uint8_t *sig, unsigned int *slen,
|
||||||
|
+ size_t msgLen, uint8_t *sig, size_t *slen,
|
||||||
|
EVP_PKEY *key) {
|
||||||
|
EVP_MD_CTX *mdctx = NULL;
|
||||||
|
int ret = 0;
|
||||||
|
diff --git a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_port_rsa.c b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_port_rsa.c
|
||||||
|
index 28241470f5..bf39656b45 100644
|
||||||
|
--- a/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_port_rsa.c
|
||||||
|
+++ b/src/vendor/github.com/golang-fips/openssl-fips/openssl/openssl_port_rsa.c
|
||||||
|
@@ -21,7 +21,7 @@ int _goboringcrypto_RSA_generate_key_fips(GO_RSA *rsa, int size,
|
||||||
|
}
|
||||||
|
|
||||||
|
int _goboringcrypto_RSA_digest_and_sign_pss_mgf1(
|
||||||
|
- GO_RSA *rsa, unsigned int *out_len, uint8_t *out, size_t max_out,
|
||||||
|
+ GO_RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out,
|
||||||
|
const uint8_t *in, size_t in_len, EVP_MD *md, const EVP_MD *mgf1_md,
|
||||||
|
int salt_len) {
|
||||||
|
EVP_PKEY_CTX *ctx;
|
||||||
|
@@ -184,7 +184,7 @@ err:
|
||||||
|
|
||||||
|
int _goboringcrypto_EVP_RSA_sign(EVP_MD *md, const uint8_t *msg,
|
||||||
|
unsigned int msgLen, uint8_t *sig,
|
||||||
|
- unsigned int *slen, RSA *rsa) {
|
||||||
|
+ size_t *slen, RSA *rsa) {
|
||||||
|
int result;
|
||||||
|
EVP_PKEY *key = _goboringcrypto_EVP_PKEY_new();
|
||||||
|
if (!key) {
|
||||||
|
@@ -216,4 +216,4 @@ int _goboringcrypto_EVP_RSA_verify(EVP_MD *md, const uint8_t *msg,
|
||||||
|
err:
|
||||||
|
_goboringcrypto_EVP_PKEY_free(key);
|
||||||
|
return result;
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
diff --git a/src/vendor/github.com/golang-fips/openssl-fips/openssl/rsa.go b/src/vendor/github.com/golang-fips/openssl-fips/openssl/rsa.go
|
||||||
|
index 915c840834..f48c57adff 100644
|
||||||
|
--- a/src/vendor/github.com/golang-fips/openssl-fips/openssl/rsa.go
|
||||||
|
+++ b/src/vendor/github.com/golang-fips/openssl-fips/openssl/rsa.go
|
||||||
|
@@ -199,7 +199,7 @@ func setupRSA(withKey func(func(*C.GO_RSA) C.int) C.int,
|
||||||
|
func cryptRSA(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,
|
||||||
|
- crypt func(*C.GO_EVP_PKEY_CTX, *C.uint8_t, *C.uint, *C.uint8_t, C.uint) C.int,
|
||||||
|
+ crypt func(*C.GO_EVP_PKEY_CTX, *C.uint8_t, *C.size_t, *C.uint8_t, C.size_t) C.int,
|
||||||
|
in []byte) ([]byte, error) {
|
||||||
|
|
||||||
|
pkey, ctx, err := setupRSA(withKey, padding, h, label, saltLen, ch, init)
|
||||||
|
@@ -209,12 +209,12 @@ func cryptRSA(withKey func(func(*C.GO_RSA) C.int) C.int,
|
||||||
|
defer C._goboringcrypto_EVP_PKEY_free(pkey)
|
||||||
|
defer C._goboringcrypto_EVP_PKEY_CTX_free(ctx)
|
||||||
|
|
||||||
|
- var outLen C.uint
|
||||||
|
- if crypt(ctx, nil, &outLen, base(in), C.uint(len(in))) == 0 {
|
||||||
|
+ var outLen C.size_t
|
||||||
|
+ if crypt(ctx, nil, &outLen, base(in), C.size_t(len(in))) == 0 {
|
||||||
|
return nil, NewOpenSSLError("EVP_PKEY_decrypt/encrypt failed")
|
||||||
|
}
|
||||||
|
out := make([]byte, outLen)
|
||||||
|
- if crypt(ctx, base(out), &outLen, base(in), C.uint(len(in))) <= 0 {
|
||||||
|
+ if crypt(ctx, base(out), &outLen, base(in), C.size_t(len(in))) <= 0 {
|
||||||
|
return nil, NewOpenSSLError("EVP_PKEY_decrypt/encrypt failed")
|
||||||
|
}
|
||||||
|
return out[:outLen], nil
|
||||||
|
@@ -250,7 +250,7 @@ func decryptInit(ctx *C.GO_EVP_PKEY_CTX) C.int {
|
||||||
|
return C._goboringcrypto_EVP_PKEY_decrypt_init(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
-func decrypt(ctx *C.GO_EVP_PKEY_CTX, out *C.uint8_t, outLen *C.uint, in *C.uint8_t, inLen C.uint) C.int {
|
||||||
|
+func decrypt(ctx *C.GO_EVP_PKEY_CTX, out *C.uint8_t, outLen *C.size_t, in *C.uint8_t, inLen C.size_t) C.int {
|
||||||
|
return C._goboringcrypto_EVP_PKEY_decrypt(ctx, out, outLen, in, inLen)
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -258,7 +258,7 @@ func encryptInit(ctx *C.GO_EVP_PKEY_CTX) C.int {
|
||||||
|
return C._goboringcrypto_EVP_PKEY_encrypt_init(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
-func encrypt(ctx *C.GO_EVP_PKEY_CTX, out *C.uint8_t, outLen *C.uint, in *C.uint8_t, inLen C.uint) C.int {
|
||||||
|
+func encrypt(ctx *C.GO_EVP_PKEY_CTX, out *C.uint8_t, outLen *C.size_t, in *C.uint8_t, inLen C.size_t) C.int {
|
||||||
|
return C._goboringcrypto_EVP_PKEY_encrypt(ctx, out, outLen, in, inLen)
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -326,7 +326,7 @@ func SignRSAPKCS1v15(priv *PrivateKeyRSA, h crypto.Hash, msg []byte, msgIsHashed
|
||||||
|
}
|
||||||
|
|
||||||
|
var out []byte
|
||||||
|
- var outLen C.uint
|
||||||
|
+ var outLen C.size_t
|
||||||
|
|
||||||
|
if priv.withKey(func(key *C.GO_RSA) C.int {
|
||||||
|
return C._goboringcrypto_EVP_RSA_sign(md, base(msg), C.uint(len(msg)), base(out), &outLen, key)
|
@ -56,7 +56,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Controls what ever we fail on failed tests
|
# Controls what ever we fail on failed tests
|
||||||
%ifarch x86_64 %{arm} aarch64 ppc64le
|
%ifarch x86_64 %{arm} aarch64 ppc64le s390x
|
||||||
%global fail_on_tests 1
|
%global fail_on_tests 1
|
||||||
%else
|
%else
|
||||||
%global fail_on_tests 0
|
%global fail_on_tests 0
|
||||||
@ -101,7 +101,7 @@
|
|||||||
|
|
||||||
Name: golang
|
Name: golang
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: The Go Programming Language
|
Summary: The Go Programming Language
|
||||||
# source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain
|
# source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain
|
||||||
License: BSD and Public Domain
|
License: BSD and Public Domain
|
||||||
@ -143,6 +143,7 @@ Patch0: 000-initial-setup.patch
|
|||||||
Patch1: 001-initial-openssl-for-fips.patch
|
Patch1: 001-initial-openssl-for-fips.patch
|
||||||
Patch2: disable_static_tests_part1.patch
|
Patch2: disable_static_tests_part1.patch
|
||||||
Patch3: disable_static_tests_part2.patch
|
Patch3: disable_static_tests_part2.patch
|
||||||
|
Patch4: enable-big-endian-fips-mode.patch
|
||||||
|
|
||||||
Patch227: cmd-link-use-correct-path-for-dynamic-loader-on-ppc6.patch
|
Patch227: cmd-link-use-correct-path-for-dynamic-loader-on-ppc6.patch
|
||||||
|
|
||||||
@ -239,6 +240,7 @@ Requires: %{name} = %{version}-%{release}
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
|
||||||
%patch221 -p1
|
%patch221 -p1
|
||||||
|
|
||||||
@ -517,6 +519,10 @@ cd ..
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Oct 17 2022 David Benoit <dbenoit@redhat.com> - 1.19.2-4
|
||||||
|
- Enable big endian support in FIPS mode
|
||||||
|
- Resolves: rhbz#1969844
|
||||||
|
|
||||||
* Mon Oct 17 2022 David Benoit <dbenoit@redhat.com> - 1.19.2-3
|
* Mon Oct 17 2022 David Benoit <dbenoit@redhat.com> - 1.19.2-3
|
||||||
- Restore old HashSign/HashVerify API
|
- Restore old HashSign/HashVerify API
|
||||||
- Resolves: rhbz#2132730
|
- Resolves: rhbz#2132730
|
||||||
|
Loading…
Reference in New Issue
Block a user