mirror of
https://github.com/winscp/winscp.git
synced 2026-10-24 02:28:55 +03:00
Merge branch 'thirdparty_dev' into dev
# Conflicts: # libs/openssl/include/openssl/cmp.h Source commit: d607feabaff43b24df8f714ab126558d615bd6f9
This commit is contained in:
@@ -95,7 +95,7 @@ ASN1_SEQUENCE(asn1_int_oct) = {
|
||||
ASN1_SIMPLE(asn1_int_oct, oct, ASN1_OCTET_STRING)
|
||||
} static_ASN1_SEQUENCE_END(asn1_int_oct)
|
||||
|
||||
DECLARE_ASN1_ITEM(asn1_int_oct)
|
||||
DECLARE_ASN1_ITEM(asn1_int_oct)
|
||||
|
||||
int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data,
|
||||
int len)
|
||||
@@ -158,7 +158,7 @@ ASN1_SEQUENCE(asn1_oct_int) = {
|
||||
ASN1_EMBED(asn1_oct_int, num, INT32)
|
||||
} static_ASN1_SEQUENCE_END(asn1_oct_int)
|
||||
|
||||
DECLARE_ASN1_ITEM(asn1_oct_int)
|
||||
DECLARE_ASN1_ITEM(asn1_oct_int)
|
||||
|
||||
int ossl_asn1_type_set_octetstring_int(ASN1_TYPE *a, long num,
|
||||
unsigned char *data, int len)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -52,6 +52,6 @@ ASN1_SEQUENCE(NETSCAPE_PKEY) = {
|
||||
ASN1_SIMPLE(NETSCAPE_PKEY, private_key, ASN1_OCTET_STRING)
|
||||
} static_ASN1_SEQUENCE_END(NETSCAPE_PKEY)
|
||||
|
||||
DECLARE_ASN1_FUNCTIONS(NETSCAPE_PKEY)
|
||||
DECLARE_ASN1_FUNCTIONS(NETSCAPE_PKEY)
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_name(NETSCAPE_PKEY, NETSCAPE_PKEY)
|
||||
IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_PKEY)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2015-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -44,7 +44,7 @@ X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher,
|
||||
uint64_t p)
|
||||
{
|
||||
X509_ALGOR *scheme = NULL, *ret = NULL;
|
||||
int alg_nid;
|
||||
int alg_nid, ivlen;
|
||||
size_t keylen = 0;
|
||||
EVP_CIPHER_CTX *ctx = NULL;
|
||||
unsigned char iv[EVP_MAX_IV_LENGTH];
|
||||
@@ -83,10 +83,11 @@ X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher,
|
||||
}
|
||||
|
||||
/* Create random IV */
|
||||
if (EVP_CIPHER_get_iv_length(cipher)) {
|
||||
ivlen = EVP_CIPHER_get_iv_length(cipher);
|
||||
if (ivlen > 0) {
|
||||
if (aiv)
|
||||
memcpy(iv, aiv, EVP_CIPHER_get_iv_length(cipher));
|
||||
else if (RAND_bytes(iv, EVP_CIPHER_get_iv_length(cipher)) <= 0)
|
||||
memcpy(iv, aiv, ivlen);
|
||||
else if (RAND_bytes(iv, ivlen) <= 0)
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -27,7 +27,7 @@ void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
unsigned char *ivec, int *num, int encrypt)
|
||||
{
|
||||
register BF_LONG v0, v1, t;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
BF_LONG ti[2];
|
||||
unsigned char *iv, c, cc;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -26,7 +26,7 @@ void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
unsigned char *ivec, int *num)
|
||||
{
|
||||
register BF_LONG v0, v1, t;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
unsigned char d[8];
|
||||
register char *dp;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -202,8 +202,19 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr)
|
||||
case BIO_CTRL_INFO:
|
||||
if (b->flags & BIO_FLAGS_UPLINK_INTERNAL)
|
||||
ret = UP_ftell(b->ptr);
|
||||
else
|
||||
else {
|
||||
#if defined(OPENSSL_SYS_WINDOWS)
|
||||
/*
|
||||
* On Windows, for non-seekable files (stdin), ftell() is undefined.
|
||||
*/
|
||||
if (GetFileType((HANDLE)_get_osfhandle(_fileno(fp))) != FILE_TYPE_DISK)
|
||||
ret = -1;
|
||||
else
|
||||
ret = ftell(fp);
|
||||
#else
|
||||
ret = ftell(fp);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case BIO_C_SET_FILE_PTR:
|
||||
file_free(b);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2014-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2014-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "crypto/bn_dh.h"
|
||||
|
||||
#if BN_BITS2 == 64
|
||||
#define BN_DEF(lo, hi) (BN_ULONG) hi << 32 | lo
|
||||
#define BN_DEF(lo, hi) (BN_ULONG)hi << 32 | lo
|
||||
#else
|
||||
#define BN_DEF(lo, hi) lo, hi
|
||||
#endif
|
||||
@@ -1387,37 +1387,37 @@ const BIGNUM ossl_bignum_const_2 = {
|
||||
};
|
||||
|
||||
make_dh_bn(dh1024_160_p)
|
||||
make_dh_bn(dh1024_160_q)
|
||||
make_dh_bn(dh1024_160_g)
|
||||
make_dh_bn(dh2048_224_p)
|
||||
make_dh_bn(dh2048_224_q)
|
||||
make_dh_bn(dh2048_224_g)
|
||||
make_dh_bn(dh2048_256_p)
|
||||
make_dh_bn(dh2048_256_q)
|
||||
make_dh_bn(dh2048_256_g)
|
||||
make_dh_bn(dh1024_160_q)
|
||||
make_dh_bn(dh1024_160_g)
|
||||
make_dh_bn(dh2048_224_p)
|
||||
make_dh_bn(dh2048_224_q)
|
||||
make_dh_bn(dh2048_224_g)
|
||||
make_dh_bn(dh2048_256_p)
|
||||
make_dh_bn(dh2048_256_q)
|
||||
make_dh_bn(dh2048_256_g)
|
||||
|
||||
make_dh_bn(ffdhe2048_p)
|
||||
make_dh_bn(ffdhe2048_q)
|
||||
make_dh_bn(ffdhe3072_p)
|
||||
make_dh_bn(ffdhe3072_q)
|
||||
make_dh_bn(ffdhe4096_p)
|
||||
make_dh_bn(ffdhe4096_q)
|
||||
make_dh_bn(ffdhe6144_p)
|
||||
make_dh_bn(ffdhe6144_q)
|
||||
make_dh_bn(ffdhe8192_p)
|
||||
make_dh_bn(ffdhe8192_q)
|
||||
make_dh_bn(ffdhe2048_p)
|
||||
make_dh_bn(ffdhe2048_q)
|
||||
make_dh_bn(ffdhe3072_p)
|
||||
make_dh_bn(ffdhe3072_q)
|
||||
make_dh_bn(ffdhe4096_p)
|
||||
make_dh_bn(ffdhe4096_q)
|
||||
make_dh_bn(ffdhe6144_p)
|
||||
make_dh_bn(ffdhe6144_q)
|
||||
make_dh_bn(ffdhe8192_p)
|
||||
make_dh_bn(ffdhe8192_q)
|
||||
|
||||
#ifndef FIPS_MODULE
|
||||
make_dh_bn(modp_1536_p)
|
||||
make_dh_bn(modp_1536_q)
|
||||
make_dh_bn(modp_1536_p)
|
||||
make_dh_bn(modp_1536_q)
|
||||
#endif
|
||||
make_dh_bn(modp_2048_p)
|
||||
make_dh_bn(modp_2048_q)
|
||||
make_dh_bn(modp_3072_p)
|
||||
make_dh_bn(modp_3072_q)
|
||||
make_dh_bn(modp_4096_p)
|
||||
make_dh_bn(modp_4096_q)
|
||||
make_dh_bn(modp_6144_p)
|
||||
make_dh_bn(modp_6144_q)
|
||||
make_dh_bn(modp_8192_p)
|
||||
make_dh_bn(modp_8192_q)
|
||||
make_dh_bn(modp_2048_p)
|
||||
make_dh_bn(modp_2048_q)
|
||||
make_dh_bn(modp_3072_p)
|
||||
make_dh_bn(modp_3072_q)
|
||||
make_dh_bn(modp_4096_p)
|
||||
make_dh_bn(modp_4096_q)
|
||||
make_dh_bn(modp_6144_p)
|
||||
make_dh_bn(modp_6144_q)
|
||||
make_dh_bn(modp_8192_p)
|
||||
make_dh_bn(modp_8192_q)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -771,16 +771,16 @@ int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
|
||||
typedef int (*bn_pwr5_mont_f)(BN_ULONG *tp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, const void *table,
|
||||
int power, int bits);
|
||||
int bn_pwr5_mont_t4_8(BN_ULONG * tp, const BN_ULONG *np,
|
||||
int bn_pwr5_mont_t4_8(BN_ULONG *tp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, const void *table,
|
||||
int power, int bits);
|
||||
int bn_pwr5_mont_t4_16(BN_ULONG * tp, const BN_ULONG *np,
|
||||
int bn_pwr5_mont_t4_16(BN_ULONG *tp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, const void *table,
|
||||
int power, int bits);
|
||||
int bn_pwr5_mont_t4_24(BN_ULONG * tp, const BN_ULONG *np,
|
||||
int bn_pwr5_mont_t4_24(BN_ULONG *tp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, const void *table,
|
||||
int power, int bits);
|
||||
int bn_pwr5_mont_t4_32(BN_ULONG * tp, const BN_ULONG *np,
|
||||
int bn_pwr5_mont_t4_32(BN_ULONG *tp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, const void *table,
|
||||
int power, int bits);
|
||||
static const bn_pwr5_mont_f pwr5_funcs[4] = {
|
||||
@@ -792,15 +792,15 @@ int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
|
||||
typedef int (*bn_mul_mont_f)(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *bp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0);
|
||||
int bn_mul_mont_t4_8(BN_ULONG * rp, const BN_ULONG *ap, const void *bp,
|
||||
int bn_mul_mont_t4_8(BN_ULONG *rp, const BN_ULONG *ap, const void *bp,
|
||||
const BN_ULONG *np, const BN_ULONG *n0);
|
||||
int bn_mul_mont_t4_16(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
int bn_mul_mont_t4_16(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *bp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0);
|
||||
int bn_mul_mont_t4_24(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
int bn_mul_mont_t4_24(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *bp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0);
|
||||
int bn_mul_mont_t4_32(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
int bn_mul_mont_t4_32(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *bp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0);
|
||||
static const bn_mul_mont_f mul_funcs[4] = {
|
||||
@@ -809,20 +809,20 @@ int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
|
||||
};
|
||||
bn_mul_mont_f mul_worker = mul_funcs[top / 16 - 1];
|
||||
|
||||
void bn_mul_mont_vis3(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
void bn_mul_mont_vis3(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *bp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, int num);
|
||||
void bn_mul_mont_t4(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
void bn_mul_mont_t4(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *bp, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, int num);
|
||||
void bn_mul_mont_gather5_t4(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
void bn_mul_mont_gather5_t4(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *table, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, int num, int power);
|
||||
void bn_flip_n_scatter5_t4(const BN_ULONG *inp, size_t num,
|
||||
void *table, size_t power);
|
||||
void bn_gather5_t4(BN_ULONG * out, size_t num,
|
||||
void bn_gather5_t4(BN_ULONG *out, size_t num,
|
||||
void *table, size_t power);
|
||||
void bn_flip_t4(BN_ULONG * dst, BN_ULONG * src, size_t num);
|
||||
void bn_flip_t4(BN_ULONG *dst, BN_ULONG *src, size_t num);
|
||||
|
||||
BN_ULONG *np = mont->N.d, *n0 = mont->n0;
|
||||
int stride = 5 * (6 - (top / 16 - 1)); /* multiple of 5, but less
|
||||
@@ -922,13 +922,13 @@ int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
|
||||
* Given those inputs, |bn_mul_mont| may not give reduced
|
||||
* output, but it will still produce "almost" reduced output.
|
||||
*/
|
||||
void bn_mul_mont_gather5(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
void bn_mul_mont_gather5(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *table, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, int num, int power);
|
||||
void bn_scatter5(const BN_ULONG *inp, size_t num,
|
||||
void *table, size_t power);
|
||||
void bn_gather5(BN_ULONG * out, size_t num, void *table, size_t power);
|
||||
void bn_power5(BN_ULONG * rp, const BN_ULONG *ap,
|
||||
void bn_gather5(BN_ULONG *out, size_t num, void *table, size_t power);
|
||||
void bn_power5(BN_ULONG *rp, const BN_ULONG *ap,
|
||||
const void *table, const BN_ULONG *np,
|
||||
const BN_ULONG *n0, int num, int power);
|
||||
int bn_get_bits5(const BN_ULONG *ap, int off);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -387,7 +387,7 @@ struct bn_gencb_st {
|
||||
#elif defined(__alpha) && (defined(SIXTY_FOUR_BIT_LONG) || defined(SIXTY_FOUR_BIT))
|
||||
#if defined(__DECC)
|
||||
#include <c_asm.h>
|
||||
#define BN_UMULT_HIGH(a, b) (BN_ULONG) asm("umulh %a0,%a1,%v0", (a), (b))
|
||||
#define BN_UMULT_HIGH(a, b) (BN_ULONG)asm("umulh %a0,%a1,%v0", (a), (b))
|
||||
#elif defined(__GNUC__) && __GNUC__ >= 2
|
||||
#define BN_UMULT_HIGH(a, b) ({ \
|
||||
register BN_ULONG ret; \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -8,10 +8,9 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Details about Montgomery multiplication algorithms can be found at
|
||||
* http://security.ece.orst.edu/publications.html, e.g.
|
||||
* http://security.ece.orst.edu/koc/papers/j37acmon.pdf and
|
||||
* sections 3.8 and 4.2 in http://security.ece.orst.edu/koc/papers/r01rsasw.pdf
|
||||
* Details about Montgomery multiplication algorithms can be found in
|
||||
* https://www.microsoft.com/en-us/research/wp-content/uploads/1996/01/j37acmon.pdf
|
||||
* and https://cetinkayakoc.net/docs/r01.pdf
|
||||
*/
|
||||
|
||||
#include "internal/cryptlib.h"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -30,7 +30,7 @@ static int bn_is_prime_int(const BIGNUM *w, int checks, BN_CTX *ctx,
|
||||
#define square(x) ((BN_ULONG)(x) * (BN_ULONG)(x))
|
||||
|
||||
#if BN_BITS2 == 64
|
||||
#define BN_DEF(lo, hi) (BN_ULONG) hi << 32 | lo
|
||||
#define BN_DEF(lo, hi) (BN_ULONG)hi << 32 | lo
|
||||
#else
|
||||
#define BN_DEF(lo, hi) lo, hi
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2018-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2018-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2018-2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "internal/nelem.h"
|
||||
|
||||
#if BN_BITS2 == 64
|
||||
#define BN_DEF(lo, hi) (BN_ULONG) hi << 32 | lo
|
||||
#define BN_DEF(lo, hi) (BN_ULONG)hi << 32 | lo
|
||||
#else
|
||||
#define BN_DEF(lo, hi) lo, hi
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -23,7 +23,7 @@ const void *ossl_bsearch(const void *key, const void *base, int num,
|
||||
l = 0;
|
||||
h = num;
|
||||
while (l < h) {
|
||||
i = (l + h) / 2;
|
||||
i = l + (h - l) / 2;
|
||||
p = &(base_[i * size]);
|
||||
c = (*cmp)(key, p);
|
||||
if (c < 0)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -27,7 +27,7 @@ void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
unsigned char *ivec, int *num, int enc)
|
||||
{
|
||||
register CAST_LONG v0, v1, t;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
CAST_LONG ti[2];
|
||||
unsigned char *iv, c, cc;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -26,7 +26,7 @@ void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
unsigned char *ivec, int *num)
|
||||
{
|
||||
register CAST_LONG v0, v1, t;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
unsigned char d[8];
|
||||
register char *dp;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2007-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright Nokia 2007-2019
|
||||
* Copyright Siemens AG 2015-2019
|
||||
*
|
||||
@@ -66,7 +66,7 @@ struct ossl_cmp_ctx_st {
|
||||
int unprotectedErrors;
|
||||
int noCacheExtraCerts;
|
||||
X509 *srvCert; /* certificate used to identify the server */
|
||||
X509 *validatedSrvCert; /* caches any already validated server cert */
|
||||
X509 *validatedSrvCert; /* caches any already validated sender cert */
|
||||
X509_NAME *expected_sender; /* expected sender in header of response */
|
||||
X509_STORE *trusted; /* trust store maybe w CRLs and cert verify callback */
|
||||
STACK_OF(X509) *untrusted; /* untrusted (intermediate CA) certs */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2008-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -23,7 +23,7 @@ ASN1_SEQUENCE(CMS_OtherCertificateFormat) = {
|
||||
ASN1_OPT(CMS_OtherCertificateFormat, otherCert, ASN1_ANY)
|
||||
} static_ASN1_SEQUENCE_END(CMS_OtherCertificateFormat)
|
||||
|
||||
ASN1_CHOICE(CMS_CertificateChoices)
|
||||
ASN1_CHOICE(CMS_CertificateChoices)
|
||||
= { ASN1_SIMPLE(CMS_CertificateChoices, d.certificate, X509), ASN1_IMP(CMS_CertificateChoices, d.extendedCertificate, ASN1_SEQUENCE, 0), ASN1_IMP(CMS_CertificateChoices, d.v1AttrCert, ASN1_SEQUENCE, 1), ASN1_IMP(CMS_CertificateChoices, d.v2AttrCert, ASN1_SEQUENCE, 2), ASN1_IMP(CMS_CertificateChoices, d.other, CMS_OtherCertificateFormat, 3) } ASN1_CHOICE_END(CMS_CertificateChoices)
|
||||
|
||||
ASN1_CHOICE(CMS_SignerIdentifier) = {
|
||||
@@ -31,11 +31,11 @@ ASN1_CHOICE(CMS_SignerIdentifier) = {
|
||||
ASN1_IMP(CMS_SignerIdentifier, d.subjectKeyIdentifier, ASN1_OCTET_STRING, 0)
|
||||
} static_ASN1_CHOICE_END(CMS_SignerIdentifier)
|
||||
|
||||
ASN1_NDEF_SEQUENCE(CMS_EncapsulatedContentInfo)
|
||||
ASN1_NDEF_SEQUENCE(CMS_EncapsulatedContentInfo)
|
||||
= { ASN1_SIMPLE(CMS_EncapsulatedContentInfo, eContentType, ASN1_OBJECT), ASN1_NDEF_EXP_OPT(CMS_EncapsulatedContentInfo, eContent, ASN1_OCTET_STRING_NDEF, 0) } static_ASN1_NDEF_SEQUENCE_END(CMS_EncapsulatedContentInfo)
|
||||
|
||||
/* Minor tweak to operation: free up signer key, cert */
|
||||
static int cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
/* Minor tweak to operation: free up signer key, cert */
|
||||
static int cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
{
|
||||
if (operation == ASN1_OP_FREE_POST) {
|
||||
CMS_SignerInfo *si = (CMS_SignerInfo *)*pval;
|
||||
@@ -62,7 +62,7 @@ ASN1_SEQUENCE(CMS_OtherRevocationInfoFormat) = {
|
||||
ASN1_OPT(CMS_OtherRevocationInfoFormat, otherRevInfo, ASN1_ANY)
|
||||
} static_ASN1_SEQUENCE_END(CMS_OtherRevocationInfoFormat)
|
||||
|
||||
ASN1_CHOICE(CMS_RevocationInfoChoice)
|
||||
ASN1_CHOICE(CMS_RevocationInfoChoice)
|
||||
= { ASN1_SIMPLE(CMS_RevocationInfoChoice, d.crl, X509_CRL), ASN1_IMP(CMS_RevocationInfoChoice, d.other, CMS_OtherRevocationInfoFormat, 1) } ASN1_CHOICE_END(CMS_RevocationInfoChoice)
|
||||
|
||||
ASN1_NDEF_SEQUENCE(CMS_SignedData) = {
|
||||
@@ -80,7 +80,7 @@ ASN1_SEQUENCE(CMS_OriginatorInfo) = {
|
||||
ASN1_IMP_SET_OF_OPT(CMS_OriginatorInfo, crls, CMS_RevocationInfoChoice, 1)
|
||||
} static_ASN1_SEQUENCE_END(CMS_OriginatorInfo)
|
||||
|
||||
static int cms_ec_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
static int cms_ec_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
{
|
||||
CMS_EncryptedContentInfo *ec = (CMS_EncryptedContentInfo *)*pval;
|
||||
|
||||
@@ -118,7 +118,7 @@ ASN1_CHOICE(CMS_KeyAgreeRecipientIdentifier) = {
|
||||
ASN1_IMP(CMS_KeyAgreeRecipientIdentifier, d.rKeyId, CMS_RecipientKeyIdentifier, 0)
|
||||
} static_ASN1_CHOICE_END(CMS_KeyAgreeRecipientIdentifier)
|
||||
|
||||
static int cms_rek_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
static int cms_rek_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
{
|
||||
CMS_RecipientEncryptedKey *rek = (CMS_RecipientEncryptedKey *)*pval;
|
||||
if (operation == ASN1_OP_FREE_POST) {
|
||||
@@ -143,7 +143,7 @@ ASN1_CHOICE(CMS_OriginatorIdentifierOrKey) = {
|
||||
ASN1_IMP(CMS_OriginatorIdentifierOrKey, d.originatorKey, CMS_OriginatorPublicKey, 1)
|
||||
} static_ASN1_CHOICE_END(CMS_OriginatorIdentifierOrKey)
|
||||
|
||||
static int cms_kari_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
static int cms_kari_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
{
|
||||
CMS_KeyAgreeRecipientInfo *kari = (CMS_KeyAgreeRecipientInfo *)*pval;
|
||||
if (operation == ASN1_OP_NEW_POST) {
|
||||
@@ -173,7 +173,7 @@ ASN1_SEQUENCE(CMS_KEKIdentifier) = {
|
||||
ASN1_OPT(CMS_KEKIdentifier, other, CMS_OtherKeyAttribute)
|
||||
} static_ASN1_SEQUENCE_END(CMS_KEKIdentifier)
|
||||
|
||||
ASN1_SEQUENCE(CMS_KEKRecipientInfo)
|
||||
ASN1_SEQUENCE(CMS_KEKRecipientInfo)
|
||||
= { ASN1_EMBED(CMS_KEKRecipientInfo, version, INT32), ASN1_SIMPLE(CMS_KEKRecipientInfo, kekid, CMS_KEKIdentifier), ASN1_SIMPLE(CMS_KEKRecipientInfo, keyEncryptionAlgorithm, X509_ALGOR), ASN1_SIMPLE(CMS_KEKRecipientInfo, encryptedKey, ASN1_OCTET_STRING) } ASN1_SEQUENCE_END(CMS_KEKRecipientInfo)
|
||||
|
||||
ASN1_SEQUENCE(CMS_PasswordRecipientInfo) = {
|
||||
@@ -188,8 +188,8 @@ ASN1_SEQUENCE(CMS_OtherRecipientInfo) = {
|
||||
ASN1_OPT(CMS_OtherRecipientInfo, oriValue, ASN1_ANY)
|
||||
} static_ASN1_SEQUENCE_END(CMS_OtherRecipientInfo)
|
||||
|
||||
/* Free up RecipientInfo additional data */
|
||||
static int cms_ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
/* Free up RecipientInfo additional data */
|
||||
static int cms_ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
|
||||
{
|
||||
if (operation == ASN1_OP_FREE_PRE) {
|
||||
CMS_RecipientInfo *ri = (CMS_RecipientInfo *)*pval;
|
||||
@@ -262,7 +262,7 @@ ASN1_NDEF_SEQUENCE(CMS_AuthenticatedData) = {
|
||||
ASN1_IMP_SET_OF_OPT(CMS_AuthenticatedData, unauthAttrs, X509_ALGOR, 3)
|
||||
} static_ASN1_NDEF_SEQUENCE_END(CMS_AuthenticatedData)
|
||||
|
||||
ASN1_NDEF_SEQUENCE(CMS_CompressedData)
|
||||
ASN1_NDEF_SEQUENCE(CMS_CompressedData)
|
||||
= {
|
||||
ASN1_EMBED(CMS_CompressedData, version, INT32),
|
||||
ASN1_SIMPLE(CMS_CompressedData, compressionAlgorithm, X509_ALGOR),
|
||||
@@ -348,7 +348,7 @@ ASN1_CHOICE(CMS_ReceiptsFrom) = {
|
||||
ASN1_IMP_SEQUENCE_OF(CMS_ReceiptsFrom, d.receiptList, GENERAL_NAMES, 1)
|
||||
} static_ASN1_CHOICE_END(CMS_ReceiptsFrom)
|
||||
|
||||
ASN1_SEQUENCE(CMS_ReceiptRequest)
|
||||
ASN1_SEQUENCE(CMS_ReceiptRequest)
|
||||
= { ASN1_SIMPLE(CMS_ReceiptRequest, signedContentIdentifier, ASN1_OCTET_STRING), ASN1_SIMPLE(CMS_ReceiptRequest, receiptsFrom, CMS_ReceiptsFrom), ASN1_SEQUENCE_OF(CMS_ReceiptRequest, receiptsTo, GENERAL_NAMES) } ASN1_SEQUENCE_END(CMS_ReceiptRequest)
|
||||
|
||||
ASN1_SEQUENCE(CMS_Receipt) = {
|
||||
@@ -375,7 +375,7 @@ ASN1_SEQUENCE(CMS_SharedInfo) = {
|
||||
ASN1_EXP_OPT(CMS_SharedInfo, suppPubInfo, ASN1_OCTET_STRING, 2),
|
||||
} static_ASN1_SEQUENCE_END(CMS_SharedInfo)
|
||||
|
||||
int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, ASN1_OCTET_STRING *ukm, int keylen)
|
||||
int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, ASN1_OCTET_STRING *ukm, int keylen)
|
||||
{
|
||||
union {
|
||||
CMS_SharedInfo *pecsi;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2008-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2008-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -35,8 +35,7 @@ typedef struct CMS_OriginatorPublicKey_st CMS_OriginatorPublicKey;
|
||||
typedef struct CMS_OriginatorIdentifierOrKey_st CMS_OriginatorIdentifierOrKey;
|
||||
typedef struct CMS_KeyAgreeRecipientInfo_st CMS_KeyAgreeRecipientInfo;
|
||||
typedef struct CMS_RecipientKeyIdentifier_st CMS_RecipientKeyIdentifier;
|
||||
typedef struct CMS_KeyAgreeRecipientIdentifier_st
|
||||
CMS_KeyAgreeRecipientIdentifier;
|
||||
typedef struct CMS_KeyAgreeRecipientIdentifier_st CMS_KeyAgreeRecipientIdentifier;
|
||||
typedef struct CMS_KEKIdentifier_st CMS_KEKIdentifier;
|
||||
typedef struct CMS_KEKRecipientInfo_st CMS_KEKRecipientInfo;
|
||||
typedef struct CMS_PasswordRecipientInfo_st CMS_PasswordRecipientInfo;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2000-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -314,7 +314,7 @@ char *NCONF_get_string(const CONF *conf, const char *group, const char *name)
|
||||
return NULL;
|
||||
}
|
||||
ERR_raise_data(ERR_LIB_CONF, CONF_R_NO_VALUE,
|
||||
"group=%s name=%s", group, name);
|
||||
"group=%s name=%s", group != NULL ? group : "", name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2002-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -395,7 +395,7 @@ static CONF_MODULE *module_find(const char *name)
|
||||
{
|
||||
CONF_MODULE *tmod;
|
||||
int i, nchar;
|
||||
char *p;
|
||||
const char *p;
|
||||
STACK_OF(CONF_MODULE) *mods;
|
||||
|
||||
p = strrchr(name, '.');
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -28,7 +28,7 @@ void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
{
|
||||
register DES_LONG v0, v1;
|
||||
register long l = length;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
DES_LONG ti[2];
|
||||
unsigned char *iv, c, cc;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -27,7 +27,7 @@ void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
{
|
||||
register DES_LONG v0, v1;
|
||||
register long l = length;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
DES_LONG ti[2];
|
||||
unsigned char *iv, c, cc;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -26,7 +26,7 @@ void DES_ede3_ofb64_encrypt(register const unsigned char *in,
|
||||
DES_key_schedule *k3, DES_cblock *ivec, int *num)
|
||||
{
|
||||
register DES_LONG v0, v1;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
DES_cblock d;
|
||||
register char *dp;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -25,7 +25,7 @@ void DES_ofb64_encrypt(register const unsigned char *in,
|
||||
DES_key_schedule *schedule, DES_cblock *ivec, int *num)
|
||||
{
|
||||
register DES_LONG v0, v1, t;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
DES_cblock d;
|
||||
register unsigned char *dp;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2000-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -76,7 +76,7 @@ ASN1_SEQUENCE(DHvparams) = {
|
||||
ASN1_SIMPLE(int_dhvparams, counter, BIGNUM)
|
||||
} static_ASN1_SEQUENCE_END_name(int_dhvparams, DHvparams)
|
||||
|
||||
ASN1_SEQUENCE(DHxparams)
|
||||
ASN1_SEQUENCE(DHxparams)
|
||||
= {
|
||||
ASN1_SIMPLE(int_dhx942_dh, p, BIGNUM),
|
||||
ASN1_SIMPLE(int_dhx942_dh, g, BIGNUM),
|
||||
@@ -85,8 +85,7 @@ ASN1_SEQUENCE(DHvparams) = {
|
||||
ASN1_OPT(int_dhx942_dh, vparams, DHvparams),
|
||||
} static_ASN1_SEQUENCE_END_name(int_dhx942_dh, DHxparams)
|
||||
|
||||
int_dhx942_dh
|
||||
* d2i_int_dhx(int_dhx942_dh * *a, const unsigned char **pp, long length);
|
||||
int_dhx942_dh *d2i_int_dhx(int_dhx942_dh **a, const unsigned char **pp, long length);
|
||||
int i2d_int_dhx(const int_dhx942_dh *a, unsigned char **pp);
|
||||
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(int_dhx942_dh, DHxparams, int_dhx)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2011-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2011-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -43,5 +43,5 @@
|
||||
}
|
||||
|
||||
make_dh(1024_160)
|
||||
make_dh(2048_224)
|
||||
make_dh(2048_256)
|
||||
make_dh(2048_224)
|
||||
make_dh(2048_256)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -47,7 +47,7 @@ ASN1_SEQUENCE_cb(DSAPrivateKey, dsa_cb) = {
|
||||
ASN1_SIMPLE(DSA, priv_key, CBIGNUM)
|
||||
} static_ASN1_SEQUENCE_END_cb(DSA, DSAPrivateKey)
|
||||
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(DSA, DSAPrivateKey, DSAPrivateKey)
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(DSA, DSAPrivateKey, DSAPrivateKey)
|
||||
|
||||
ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = {
|
||||
ASN1_SIMPLE(DSA, params.p, BIGNUM),
|
||||
@@ -55,7 +55,7 @@ ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = {
|
||||
ASN1_SIMPLE(DSA, params.g, BIGNUM),
|
||||
} static_ASN1_SEQUENCE_END_cb(DSA, DSAparams)
|
||||
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(DSA, DSAparams, DSAparams)
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(DSA, DSAparams, DSAparams)
|
||||
|
||||
ASN1_SEQUENCE_cb(DSAPublicKey, dsa_cb) = {
|
||||
ASN1_SIMPLE(DSA, pub_key, BIGNUM),
|
||||
@@ -64,7 +64,7 @@ ASN1_SEQUENCE_cb(DSAPublicKey, dsa_cb) = {
|
||||
ASN1_SIMPLE(DSA, params.g, BIGNUM)
|
||||
} static_ASN1_SEQUENCE_END_cb(DSA, DSAPublicKey)
|
||||
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(DSA, DSAPublicKey, DSAPublicKey)
|
||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(DSA, DSAPublicKey, DSAPublicKey)
|
||||
|
||||
DSA *DSAparams_dup(const DSA *dsa)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2002-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -105,7 +105,7 @@ ASN1_SEQUENCE(X9_62_PENTANOMIAL) = {
|
||||
ASN1_EMBED(X9_62_PENTANOMIAL, k3, INT32)
|
||||
} static_ASN1_SEQUENCE_END(X9_62_PENTANOMIAL)
|
||||
|
||||
DECLARE_ASN1_ALLOC_FUNCTIONS(X9_62_PENTANOMIAL)
|
||||
DECLARE_ASN1_ALLOC_FUNCTIONS(X9_62_PENTANOMIAL)
|
||||
IMPLEMENT_ASN1_ALLOC_FUNCTIONS(X9_62_PENTANOMIAL)
|
||||
|
||||
ASN1_ADB_TEMPLATE(char_two_def) = ASN1_SIMPLE(X9_62_CHARACTERISTIC_TWO, p.other, ASN1_ANY);
|
||||
@@ -122,7 +122,7 @@ ASN1_SEQUENCE(X9_62_CHARACTERISTIC_TWO) = {
|
||||
ASN1_ADB_OBJECT(X9_62_CHARACTERISTIC_TWO)
|
||||
} static_ASN1_SEQUENCE_END(X9_62_CHARACTERISTIC_TWO)
|
||||
|
||||
DECLARE_ASN1_ALLOC_FUNCTIONS(X9_62_CHARACTERISTIC_TWO)
|
||||
DECLARE_ASN1_ALLOC_FUNCTIONS(X9_62_CHARACTERISTIC_TWO)
|
||||
IMPLEMENT_ASN1_ALLOC_FUNCTIONS(X9_62_CHARACTERISTIC_TWO)
|
||||
|
||||
ASN1_ADB_TEMPLATE(fieldID_def) = ASN1_SIMPLE(X9_62_FIELDID, p.other, ASN1_ANY);
|
||||
@@ -137,10 +137,10 @@ ASN1_SEQUENCE(X9_62_FIELDID) = {
|
||||
ASN1_ADB_OBJECT(X9_62_FIELDID)
|
||||
} static_ASN1_SEQUENCE_END(X9_62_FIELDID)
|
||||
|
||||
ASN1_SEQUENCE(X9_62_CURVE)
|
||||
ASN1_SEQUENCE(X9_62_CURVE)
|
||||
= { ASN1_SIMPLE(X9_62_CURVE, a, ASN1_OCTET_STRING), ASN1_SIMPLE(X9_62_CURVE, b, ASN1_OCTET_STRING), ASN1_OPT(X9_62_CURVE, seed, ASN1_BIT_STRING) } static_ASN1_SEQUENCE_END(X9_62_CURVE)
|
||||
|
||||
ASN1_SEQUENCE(ECPARAMETERS)
|
||||
ASN1_SEQUENCE(ECPARAMETERS)
|
||||
= { ASN1_EMBED(ECPARAMETERS, version, INT32), ASN1_SIMPLE(ECPARAMETERS, fieldID, X9_62_FIELDID), ASN1_SIMPLE(ECPARAMETERS, curve, X9_62_CURVE), ASN1_SIMPLE(ECPARAMETERS, base, ASN1_OCTET_STRING), ASN1_SIMPLE(ECPARAMETERS, order, ASN1_INTEGER), ASN1_OPT(ECPARAMETERS, cofactor, ASN1_INTEGER) } ASN1_SEQUENCE_END(ECPARAMETERS)
|
||||
|
||||
DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS)
|
||||
@@ -163,7 +163,7 @@ ASN1_SEQUENCE(EC_PRIVATEKEY) = {
|
||||
ASN1_EXP_OPT(EC_PRIVATEKEY, publicKey, ASN1_BIT_STRING, 1)
|
||||
} static_ASN1_SEQUENCE_END(EC_PRIVATEKEY)
|
||||
|
||||
DECLARE_ASN1_FUNCTIONS(EC_PRIVATEKEY)
|
||||
DECLARE_ASN1_FUNCTIONS(EC_PRIVATEKEY)
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_name(EC_PRIVATEKEY, EC_PRIVATEKEY)
|
||||
IMPLEMENT_ASN1_FUNCTIONS(EC_PRIVATEKEY)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2002-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -50,7 +50,7 @@ int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx)
|
||||
* ECC domain parameter validation.
|
||||
* See SP800-56A R3 5.5.2 "Assurances of Domain-Parameter Validity" Part 1b.
|
||||
*/
|
||||
return EC_GROUP_check_named_curve(group, 1, ctx) >= 0 ? 1 : 0;
|
||||
return EC_GROUP_check_named_curve(group, 1, ctx) > 0 ? 1 : 0;
|
||||
#else
|
||||
int ret = 0;
|
||||
const BIGNUM *order;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2001-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -175,6 +175,8 @@ int EC_GROUP_copy(EC_GROUP *dest, const EC_GROUP *src)
|
||||
dest->libctx = src->libctx;
|
||||
dest->curve_name = src->curve_name;
|
||||
|
||||
EC_pre_comp_free(dest);
|
||||
|
||||
/* Copy precomputed */
|
||||
dest->pre_comp_type = src->pre_comp_type;
|
||||
switch (src->pre_comp_type) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "crypto/cmperr.h"
|
||||
#include "crypto/cterr.h"
|
||||
#include "crypto/asyncerr.h"
|
||||
#include "crypto/sm2err.h"
|
||||
#include "crypto/storeerr.h"
|
||||
#include "crypto/esserr.h"
|
||||
#include "internal/propertyerr.h"
|
||||
@@ -104,6 +105,9 @@ int ossl_err_load_crypto_strings(void)
|
||||
#endif
|
||||
|| ossl_err_load_ESS_strings() == 0
|
||||
|| ossl_err_load_ASYNC_strings() == 0
|
||||
#ifndef OPENSSL_NO_SM2
|
||||
|| ossl_err_load_SM2_strings() == 0
|
||||
#endif
|
||||
|| ossl_err_load_OSSL_STORE_strings() == 0
|
||||
|| ossl_err_load_PROP_strings() == 0
|
||||
|| ossl_err_load_PROV_strings() == 0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -872,8 +872,9 @@ const OSSL_PARAM *EVP_MD_CTX_gettable_params(EVP_MD_CTX *ctx)
|
||||
if (pctx != NULL
|
||||
&& (pctx->operation == EVP_PKEY_OP_VERIFYCTX
|
||||
|| pctx->operation == EVP_PKEY_OP_SIGNCTX)
|
||||
&& pctx->op.sig.algctx != NULL
|
||||
&& pctx->op.sig.signature->gettable_ctx_md_params != NULL)
|
||||
&& pctx->op.sig.signature != NULL
|
||||
&& pctx->op.sig.signature->gettable_ctx_md_params != NULL
|
||||
&& pctx->op.sig.algctx != NULL)
|
||||
return pctx->op.sig.signature->gettable_ctx_md_params(
|
||||
pctx->op.sig.algctx);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2001-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -2403,14 +2403,14 @@ static int s390x_aes_ocb_ctrl(EVP_CIPHER_CTX *, int type, int arg, void *ptr);
|
||||
|
||||
#endif
|
||||
|
||||
#define BLOCK_CIPHER_generic_pack(nid, keylen, flags) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 16, 16, cbc, cbc, CBC, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 16, 0, ecb, ecb, ECB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, ofb128, ofb, OFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, cfb128, cfb, CFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, cfb1, cfb1, CFB, flags) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, cfb8, cfb8, CFB, flags) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, ctr, ctr, CTR, flags)
|
||||
#define BLOCK_CIPHER_generic_pack(nid, keylen, flags) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 16, 16, cbc, cbc, CBC, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 16, 0, ecb, ecb, ECB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, ofb128, ofb, OFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, cfb128, cfb, CFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, cfb1, cfb1, CFB, flags) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, cfb8, cfb8, CFB, flags) \
|
||||
BLOCK_CIPHER_generic(nid, keylen, 1, 16, ctr, ctr, CTR, flags)
|
||||
|
||||
static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
@@ -2641,10 +2641,10 @@ static int aes_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
}
|
||||
|
||||
BLOCK_CIPHER_generic_pack(NID_aes, 128, 0)
|
||||
BLOCK_CIPHER_generic_pack(NID_aes, 192, 0)
|
||||
BLOCK_CIPHER_generic_pack(NID_aes, 256, 0)
|
||||
BLOCK_CIPHER_generic_pack(NID_aes, 192, 0)
|
||||
BLOCK_CIPHER_generic_pack(NID_aes, 256, 0)
|
||||
|
||||
static int aes_gcm_cleanup(EVP_CIPHER_CTX *c)
|
||||
static int aes_gcm_cleanup(EVP_CIPHER_CTX *c)
|
||||
{
|
||||
EVP_AES_GCM_CTX *gctx = EVP_C_DATA(EVP_AES_GCM_CTX, c);
|
||||
if (gctx == NULL)
|
||||
@@ -3189,12 +3189,12 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
|
||||
BLOCK_CIPHER_custom(NID_aes, 128, 1, 12, gcm, GCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 192, 1, 12, gcm, GCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, gcm, GCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 192, 1, 12, gcm, GCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, gcm, GCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
|
||||
static int aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
|
||||
static int aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
|
||||
{
|
||||
EVP_AES_XTS_CTX *xctx = EVP_C_DATA(EVP_AES_XTS_CTX, c);
|
||||
|
||||
@@ -3378,9 +3378,9 @@ static int aes_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
| EVP_CIPH_CUSTOM_COPY)
|
||||
|
||||
BLOCK_CIPHER_custom(NID_aes, 128, 1, 16, xts, XTS, XTS_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 1, 16, xts, XTS, XTS_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 1, 16, xts, XTS, XTS_FLAGS)
|
||||
|
||||
static int aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
|
||||
static int aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
|
||||
{
|
||||
EVP_AES_CCM_CTX *cctx = EVP_C_DATA(EVP_AES_CCM_CTX, c);
|
||||
switch (type) {
|
||||
@@ -3654,12 +3654,12 @@ static int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
|
||||
BLOCK_CIPHER_custom(NID_aes, 128, 1, 12, ccm, CCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 192, 1, 12, ccm, CCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, ccm, CCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 192, 1, 12, ccm, CCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, ccm, CCM,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
|
||||
typedef struct {
|
||||
typedef struct {
|
||||
union {
|
||||
OSSL_UNION_ALIGN;
|
||||
AES_KEY ks;
|
||||
@@ -4146,8 +4146,8 @@ static int aes_ocb_cleanup(EVP_CIPHER_CTX *c)
|
||||
|
||||
BLOCK_CIPHER_custom(NID_aes, 128, 16, 12, ocb, OCB,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 192, 16, 12, ocb, OCB,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 16, 12, ocb, OCB,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 192, 16, 12, ocb, OCB,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
BLOCK_CIPHER_custom(NID_aes, 256, 16, 12, ocb, OCB,
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
|
||||
#endif /* OPENSSL_NO_OCB */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2017-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2017-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -194,13 +194,13 @@ static int aria_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
}
|
||||
|
||||
BLOCK_CIPHER_generic(NID_aria, 128, 1, 16, ctr, ctr, CTR, 0)
|
||||
BLOCK_CIPHER_generic(NID_aria, 192, 1, 16, ctr, ctr, CTR, 0)
|
||||
BLOCK_CIPHER_generic(NID_aria, 256, 1, 16, ctr, ctr, CTR, 0)
|
||||
BLOCK_CIPHER_generic(NID_aria, 192, 1, 16, ctr, ctr, CTR, 0)
|
||||
BLOCK_CIPHER_generic(NID_aria, 256, 1, 16, ctr, ctr, CTR, 0)
|
||||
|
||||
/* Authenticated cipher modes (GCM/CCM) */
|
||||
/* Authenticated cipher modes (GCM/CCM) */
|
||||
|
||||
/* increment counter (64-bit int) by 1 */
|
||||
static void ctr64_inc(unsigned char *counter)
|
||||
/* increment counter (64-bit int) by 1 */
|
||||
static void ctr64_inc(unsigned char *counter)
|
||||
{
|
||||
int n = 8;
|
||||
unsigned char c;
|
||||
@@ -778,11 +778,11 @@ static int aria_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
}
|
||||
|
||||
BLOCK_CIPHER_aead(128, gcm, GCM)
|
||||
BLOCK_CIPHER_aead(192, gcm, GCM)
|
||||
BLOCK_CIPHER_aead(256, gcm, GCM)
|
||||
BLOCK_CIPHER_aead(192, gcm, GCM)
|
||||
BLOCK_CIPHER_aead(256, gcm, GCM)
|
||||
|
||||
BLOCK_CIPHER_aead(128, ccm, CCM)
|
||||
BLOCK_CIPHER_aead(192, ccm, CCM)
|
||||
BLOCK_CIPHER_aead(256, ccm, CCM)
|
||||
BLOCK_CIPHER_aead(128, ccm, CCM)
|
||||
BLOCK_CIPHER_aead(192, ccm, CCM)
|
||||
BLOCK_CIPHER_aead(256, ccm, CCM)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -197,16 +197,16 @@ BLOCK_CIPHER_defs(des, EVP_DES_KEY, NID_des, 8, 8, 8, 64,
|
||||
EVP_CIPH_RAND_KEY, des_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 1,
|
||||
EVP_CIPH_RAND_KEY, des_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl)
|
||||
BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 1,
|
||||
EVP_CIPH_RAND_KEY, des_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 8,
|
||||
EVP_CIPH_RAND_KEY, des_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl)
|
||||
BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 8,
|
||||
EVP_CIPH_RAND_KEY, des_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl)
|
||||
|
||||
static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
{
|
||||
DES_cblock *deskey = (DES_cblock *)key;
|
||||
EVP_DES_KEY *dat = (EVP_DES_KEY *)EVP_CIPHER_CTX_get_cipher_data(ctx);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -210,20 +210,20 @@ BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64,
|
||||
#define des_ede3_ofb_cipher des_ede_ofb_cipher
|
||||
#define des_ede3_cbc_cipher des_ede_cbc_cipher
|
||||
#define des_ede3_ecb_cipher des_ede_ecb_cipher
|
||||
BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64,
|
||||
EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_DEFAULT_ASN1,
|
||||
des_ede3_init_key, NULL, NULL, NULL, des3_ctrl)
|
||||
BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64,
|
||||
EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_DEFAULT_ASN1,
|
||||
des_ede3_init_key, NULL, NULL, NULL, des3_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1,
|
||||
EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_DEFAULT_ASN1,
|
||||
des_ede3_init_key, NULL, NULL, NULL, des3_ctrl)
|
||||
BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1,
|
||||
EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_DEFAULT_ASN1,
|
||||
des_ede3_init_key, NULL, NULL, NULL, des3_ctrl)
|
||||
|
||||
BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8,
|
||||
EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_DEFAULT_ASN1,
|
||||
des_ede3_init_key, NULL, NULL, NULL, des3_ctrl)
|
||||
BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8,
|
||||
EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_DEFAULT_ASN1,
|
||||
des_ede3_init_key, NULL, NULL, NULL, des3_ctrl)
|
||||
|
||||
static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
{
|
||||
DES_cblock *deskey = (DES_cblock *)key;
|
||||
DES_EDE_KEY *dat = data(ctx);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -54,8 +54,8 @@ BLOCK_CIPHER_func_cbc(idea, IDEA, EVP_IDEA_KEY, ks)
|
||||
0, idea_init_key, NULL,
|
||||
EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, NULL)
|
||||
|
||||
static int idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
static int idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
{
|
||||
if (!enc) {
|
||||
if (EVP_CIPHER_CTX_get_mode(ctx) == EVP_CIPH_OFB_MODE)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2017-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2017-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2017 Ribose Inc. All Rights Reserved.
|
||||
* Ported from Ribose contributions from Botan.
|
||||
*
|
||||
@@ -49,12 +49,12 @@ typedef struct {
|
||||
return &sm4_##mode; \
|
||||
}
|
||||
|
||||
#define DEFINE_BLOCK_CIPHERS(nid, flags) \
|
||||
BLOCK_CIPHER_generic(nid, 16, 16, cbc, cbc, CBC, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 16, 0, ecb, ecb, ECB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 1, 16, ofb128, ofb, OFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 1, 16, cfb128, cfb, CFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 1, 16, ctr, ctr, CTR, flags)
|
||||
#define DEFINE_BLOCK_CIPHERS(nid, flags) \
|
||||
BLOCK_CIPHER_generic(nid, 16, 16, cbc, cbc, CBC, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 16, 0, ecb, ecb, ECB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 1, 16, ofb128, ofb, OFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 1, 16, cfb128, cfb, CFB, flags | EVP_CIPH_FLAG_DEFAULT_ASN1) \
|
||||
BLOCK_CIPHER_generic(nid, 1, 16, ctr, ctr, CTR, flags)
|
||||
|
||||
static int sm4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||
const unsigned char *iv, int enc)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -689,7 +689,7 @@ static int evp_decodeblock_int(EVP_ENCODE_CTX *ctx, unsigned char *t,
|
||||
l = ((((unsigned long)a) << 18L) | (((unsigned long)b) << 12L) | (((unsigned long)c) << 6L) | (((unsigned long)d)));
|
||||
|
||||
if (eof == -1)
|
||||
eof = (f[2] == '=') + (f[3] == '=');
|
||||
eof = (c == '=') + (d == '=');
|
||||
|
||||
switch (eof) {
|
||||
case 2:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -979,6 +979,11 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
|
||||
size_t soutl, inl_ = (size_t)inl;
|
||||
int blocksize;
|
||||
|
||||
if (inl < 0) {
|
||||
ERR_raise(ERR_LIB_EVP, EVP_R_INVALID_LENGTH);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ossl_likely(outl != NULL)) {
|
||||
*outl = 0;
|
||||
} else {
|
||||
@@ -1128,6 +1133,11 @@ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
|
||||
size_t soutl, inl_ = (size_t)inl;
|
||||
int blocksize;
|
||||
|
||||
if (inl < 0) {
|
||||
ERR_raise(ERR_LIB_EVP, EVP_R_INVALID_LENGTH);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ossl_likely(outl != NULL)) {
|
||||
*outl = 0;
|
||||
} else {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -181,7 +181,7 @@ static int evp_kem_init(EVP_PKEY_CTX *ctx, int operation,
|
||||
if (provauthkey != NULL && kem->auth_decapsulate_init != NULL) {
|
||||
ret = kem->auth_decapsulate_init(ctx->op.encap.algctx, provkey,
|
||||
provauthkey, params);
|
||||
} else if (provauthkey == NULL && kem->encapsulate_init != NULL) {
|
||||
} else if (provauthkey == NULL && kem->decapsulate_init != NULL) {
|
||||
ret = kem->decapsulate_init(ctx->op.encap.algctx, provkey, params);
|
||||
} else {
|
||||
ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2024-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2024-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -82,9 +82,11 @@
|
||||
#if defined(__GNUC__) || defined(__CLANG__)
|
||||
#define PREFETCH_NEIGHBORHOOD(x) __builtin_prefetch(x.entries)
|
||||
#define PREFETCH(x) __builtin_prefetch(x)
|
||||
#define ALIGN __attribute__((aligned(8)))
|
||||
#else
|
||||
#define PREFETCH_NEIGHBORHOOD(x)
|
||||
#define PREFETCH(x)
|
||||
#define ALIGN
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -112,7 +114,7 @@ struct ht_internal_value_st {
|
||||
struct ht_neighborhood_entry_st {
|
||||
uint64_t hash;
|
||||
struct ht_internal_value_st *value;
|
||||
};
|
||||
} ALIGN;
|
||||
|
||||
struct ht_neighborhood_st {
|
||||
struct ht_neighborhood_entry_st entries[NEIGHBORHOOD_LEN];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2001-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright Siemens AG 2018-2020
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -551,6 +551,7 @@ static int may_still_retry(time_t max_time, int *ptimeout)
|
||||
int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx)
|
||||
{
|
||||
int i, found_expected_ct = 0, found_keep_alive = 0;
|
||||
int status_code = 0;
|
||||
int got_text = 1;
|
||||
long n;
|
||||
size_t resp_len = 0;
|
||||
@@ -751,8 +752,8 @@ next_io:
|
||||
|
||||
/* First line in response header */
|
||||
if (rctx->state == OHS_FIRSTLINE) {
|
||||
i = parse_http_line1(buf, &found_keep_alive);
|
||||
switch (i) {
|
||||
status_code = parse_http_line1(buf, &found_keep_alive);
|
||||
switch (status_code) {
|
||||
case HTTP_STATUS_CODE_OK:
|
||||
rctx->state = OHS_HEADERS;
|
||||
goto next_line;
|
||||
@@ -767,7 +768,7 @@ next_io:
|
||||
/* fall through */
|
||||
default:
|
||||
/* must return content if status >= 400 */
|
||||
rctx->state = i < HTTP_STATUS_CODES_NONFATAL_ERROR
|
||||
rctx->state = status_code < HTTP_STATUS_CODES_NONFATAL_ERROR
|
||||
? OHS_HEADERS_ERROR
|
||||
: OHS_HEADERS;
|
||||
goto next_line; /* continue parsing, also on HTTP error */
|
||||
@@ -797,6 +798,17 @@ next_io:
|
||||
}
|
||||
if (OPENSSL_strcasecmp(key, "Content-Type") == 0) {
|
||||
got_text = HAS_CASE_PREFIX(value, "text/");
|
||||
if (got_text
|
||||
&& rctx->state == OHS_HEADERS
|
||||
&& rctx->expect_asn1
|
||||
&& (status_code >= HTTP_STATUS_CODES_NONFATAL_ERROR
|
||||
|| status_code == HTTP_STATUS_CODE_OK)) {
|
||||
ERR_raise_data(ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH,
|
||||
"expected ASN.1 content but got http code %d with Content-Type: %s",
|
||||
status_code, value);
|
||||
rctx->state = OHS_HEADERS_ERROR;
|
||||
goto next_line;
|
||||
}
|
||||
if (rctx->state == OHS_HEADERS
|
||||
&& rctx->expected_ct != NULL) {
|
||||
const char *semicolon;
|
||||
@@ -1452,7 +1464,11 @@ int OSSL_HTTP_proxy_connect(BIO *bio, const char *server, const char *port,
|
||||
}
|
||||
BIO_push(fbio, bio);
|
||||
|
||||
BIO_printf(fbio, "CONNECT %s:%s " HTTP_1_0 "\r\n", server, port);
|
||||
/* Add square brackets around a naked IPv6 address */
|
||||
if (server[0] != '[' && strchr(server, ':') != NULL)
|
||||
BIO_printf(fbio, "CONNECT [%s]:%s " HTTP_1_0 "\r\n", server, port);
|
||||
else
|
||||
BIO_printf(fbio, "CONNECT %s:%s " HTTP_1_0 "\r\n", server, port);
|
||||
|
||||
/*
|
||||
* Workaround for broken proxies which would otherwise close
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Generated by util/mkerr.pl DO NOT EDIT
|
||||
* Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -20,6 +20,8 @@ static const ERR_STRING_DATA HTTP_str_reasons[] = {
|
||||
{ ERR_PACK(ERR_LIB_HTTP, 0, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN),
|
||||
"asn1 len exceeds max resp len" },
|
||||
{ ERR_PACK(ERR_LIB_HTTP, 0, HTTP_R_CONNECT_FAILURE), "connect failure" },
|
||||
{ ERR_PACK(ERR_LIB_HTTP, 0, HTTP_R_CONTENT_TYPE_MISMATCH),
|
||||
"content type mismatch" },
|
||||
{ ERR_PACK(ERR_LIB_HTTP, 0, HTTP_R_ERROR_PARSING_ASN1_LENGTH),
|
||||
"error parsing asn1 length" },
|
||||
{ ERR_PACK(ERR_LIB_HTTP, 0, HTTP_R_ERROR_PARSING_CONTENT_LENGTH),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2001-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -55,6 +55,7 @@ int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost,
|
||||
char **ppath, char **pquery, char **pfrag)
|
||||
{
|
||||
const char *p, *tmp;
|
||||
const char *authority_end;
|
||||
const char *scheme, *scheme_end;
|
||||
const char *user, *user_end;
|
||||
const char *host, *host_end;
|
||||
@@ -92,7 +93,10 @@ int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost,
|
||||
|
||||
/* parse optional "userinfo@" */
|
||||
user = user_end = host = p;
|
||||
host = strchr(p, '@');
|
||||
authority_end = strpbrk(p, "/?#");
|
||||
if (authority_end == NULL)
|
||||
authority_end = p + strlen(p);
|
||||
host = memchr(p, '@', authority_end - p);
|
||||
if (host != NULL)
|
||||
user_end = host++;
|
||||
else
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -37,6 +37,7 @@ void IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
*num = -1;
|
||||
return;
|
||||
}
|
||||
n = n & 0x07;
|
||||
|
||||
iv = (unsigned char *)ivec;
|
||||
if (encrypt) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -39,6 +39,7 @@ void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
*num = -1;
|
||||
return;
|
||||
}
|
||||
n = n & 0x07;
|
||||
|
||||
iv = (unsigned char *)ivec;
|
||||
n2l(iv, v0);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -275,27 +275,24 @@ DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_add_all_digests,
|
||||
}
|
||||
|
||||
static CRYPTO_ONCE config = CRYPTO_ONCE_STATIC_INIT;
|
||||
static int config_inited = 0;
|
||||
static const OPENSSL_INIT_SETTINGS *conf_settings = NULL;
|
||||
DEFINE_RUN_ONCE_STATIC(ossl_init_config)
|
||||
{
|
||||
int ret = ossl_config_int(NULL);
|
||||
|
||||
config_inited = 1;
|
||||
return ret;
|
||||
}
|
||||
DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_config_settings, ossl_init_config)
|
||||
{
|
||||
int ret = ossl_config_int(conf_settings);
|
||||
|
||||
config_inited = 1;
|
||||
return ret;
|
||||
}
|
||||
DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_config, ossl_init_config)
|
||||
{
|
||||
OSSL_TRACE(INIT, "ossl_no_config_int()\n");
|
||||
ossl_no_config_int();
|
||||
config_inited = 1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -200,16 +200,28 @@ static void init_thread_destructor(void *hands)
|
||||
}
|
||||
|
||||
static CRYPTO_ONCE ossl_init_thread_runonce = CRYPTO_ONCE_STATIC_INIT;
|
||||
/* MSVC linker can use other segment for uninitialized (zeroed) variables */
|
||||
#if defined(OPENSSL_SYS_WINDOWS)
|
||||
static CRYPTO_THREAD_ID recursion_guard = (CRYPTO_THREAD_ID)-1;
|
||||
#elif defined(OPENSSL_SYS_TANDEM) && (defined(_PUT_MODEL_) || defined(_KLT_MODEL_))
|
||||
static CRYPTO_THREAD_ID recursion_guard = { (void *)-1, (short)-1, (short)-1 };
|
||||
#else
|
||||
static CRYPTO_THREAD_ID recursion_guard = (CRYPTO_THREAD_ID)0;
|
||||
#endif
|
||||
|
||||
DEFINE_RUN_ONCE_STATIC(ossl_init_thread_once)
|
||||
{
|
||||
/* CRYPTO_THREAD_init_local() can call ossl_init_threads() again */
|
||||
recursion_guard = CRYPTO_THREAD_get_current_id();
|
||||
if (!CRYPTO_THREAD_init_local(&destructor_key.value,
|
||||
init_thread_destructor))
|
||||
return 0;
|
||||
|
||||
#if defined(OPENSSL_SYS_TANDEM)
|
||||
memset(&recursion_guard, 0, sizeof(recursion_guard));
|
||||
#else
|
||||
recursion_guard = (CRYPTO_THREAD_ID)0;
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2003-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -296,6 +296,11 @@ static int buf2hexstr_sep(char *str, size_t str_n, size_t *strlength,
|
||||
int has_sep = (sep != CH_ZERO);
|
||||
size_t i, len = has_sep ? buflen * 3 : 1 + buflen * 2;
|
||||
|
||||
if (buflen > (has_sep ? SIZE_MAX / 3 : (SIZE_MAX - 1) / 2)) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (len == 0)
|
||||
++len;
|
||||
if (strlength != NULL)
|
||||
@@ -339,7 +344,13 @@ char *ossl_buf2hexstr_sep(const unsigned char *buf, long buflen, char sep)
|
||||
if (buflen == 0)
|
||||
return OPENSSL_zalloc(1);
|
||||
|
||||
tmp_n = (sep != CH_ZERO) ? buflen * 3 : 1 + buflen * 2;
|
||||
if ((sep != CH_ZERO && (size_t)buflen > SIZE_MAX / 3)
|
||||
|| (sep == CH_ZERO && (size_t)buflen > (SIZE_MAX - 1) / 2)) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tmp_n = (sep != CH_ZERO) ? (size_t)buflen * 3 : 1 + (size_t)buflen * 2;
|
||||
if ((tmp = OPENSSL_malloc(tmp_n)) == NULL)
|
||||
return NULL;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -121,12 +121,22 @@ void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld)
|
||||
|
||||
int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER);
|
||||
}
|
||||
|
||||
int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key,
|
||||
unsigned int num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num),
|
||||
OSSL_PARAM_UNSIGNED_INTEGER);
|
||||
}
|
||||
@@ -134,12 +144,22 @@ int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key,
|
||||
long int num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER);
|
||||
}
|
||||
|
||||
int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key,
|
||||
unsigned long int num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num),
|
||||
OSSL_PARAM_UNSIGNED_INTEGER);
|
||||
}
|
||||
@@ -147,12 +167,22 @@ int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int32_t num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER);
|
||||
}
|
||||
|
||||
int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key,
|
||||
uint32_t num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num),
|
||||
OSSL_PARAM_UNSIGNED_INTEGER);
|
||||
}
|
||||
@@ -160,12 +190,22 @@ int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int64_t num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER);
|
||||
}
|
||||
|
||||
int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key,
|
||||
uint64_t num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num),
|
||||
OSSL_PARAM_UNSIGNED_INTEGER);
|
||||
}
|
||||
@@ -173,6 +213,11 @@ int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key,
|
||||
size_t num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num),
|
||||
OSSL_PARAM_UNSIGNED_INTEGER);
|
||||
}
|
||||
@@ -180,6 +225,11 @@ int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key,
|
||||
time_t num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num),
|
||||
OSSL_PARAM_INTEGER);
|
||||
}
|
||||
@@ -187,6 +237,11 @@ int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key,
|
||||
double num)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_REAL);
|
||||
}
|
||||
|
||||
@@ -196,6 +251,11 @@ static int push_BN(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int n, secure = 0;
|
||||
OSSL_PARAM_BLD_DEF *pd;
|
||||
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!ossl_assert(type == OSSL_PARAM_UNSIGNED_INTEGER
|
||||
|| type == OSSL_PARAM_INTEGER))
|
||||
return 0;
|
||||
@@ -233,6 +293,11 @@ static int push_BN(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key,
|
||||
const BIGNUM *bn)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (bn != NULL && BN_is_negative(bn))
|
||||
return push_BN(bld, key, bn, BN_num_bytes(bn) + 1,
|
||||
OSSL_PARAM_INTEGER);
|
||||
@@ -243,6 +308,11 @@ int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key,
|
||||
int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key,
|
||||
const BIGNUM *bn, size_t sz)
|
||||
{
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (bn != NULL && BN_is_negative(bn))
|
||||
return push_BN(bld, key, bn, BN_num_bytes(bn),
|
||||
OSSL_PARAM_INTEGER);
|
||||
@@ -255,6 +325,11 @@ int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key,
|
||||
OSSL_PARAM_BLD_DEF *pd;
|
||||
int secure;
|
||||
|
||||
if (bld == NULL || key == NULL || buf == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (bsize == 0)
|
||||
bsize = strlen(buf);
|
||||
secure = CRYPTO_secure_allocated(buf);
|
||||
@@ -270,6 +345,11 @@ int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key,
|
||||
{
|
||||
OSSL_PARAM_BLD_DEF *pd;
|
||||
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (bsize == 0)
|
||||
bsize = strlen(buf);
|
||||
pd = param_push(bld, key, bsize, sizeof(buf), OSSL_PARAM_UTF8_PTR, 0);
|
||||
@@ -285,6 +365,11 @@ int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key,
|
||||
OSSL_PARAM_BLD_DEF *pd;
|
||||
int secure;
|
||||
|
||||
if (bld == NULL || key == NULL || buf == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
secure = CRYPTO_secure_allocated(buf);
|
||||
pd = param_push(bld, key, bsize, bsize, OSSL_PARAM_OCTET_STRING, secure);
|
||||
if (pd == NULL)
|
||||
@@ -298,6 +383,11 @@ int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key,
|
||||
{
|
||||
OSSL_PARAM_BLD_DEF *pd;
|
||||
|
||||
if (bld == NULL || key == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
pd = param_push(bld, key, bsize, sizeof(buf), OSSL_PARAM_OCTET_PTR, 0);
|
||||
if (pd == NULL)
|
||||
return 0;
|
||||
@@ -362,10 +452,18 @@ OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld)
|
||||
{
|
||||
OSSL_PARAM_ALIGNED_BLOCK *blk, *s = NULL;
|
||||
OSSL_PARAM *params, *last;
|
||||
const int num = sk_OSSL_PARAM_BLD_DEF_num(bld->params);
|
||||
const size_t p_blks = ossl_param_bytes_to_blocks((1 + num) * sizeof(*params));
|
||||
const size_t total = OSSL_PARAM_ALIGN_SIZE * (p_blks + bld->total_blocks);
|
||||
const size_t ss = OSSL_PARAM_ALIGN_SIZE * bld->secure_blocks;
|
||||
int num;
|
||||
size_t p_blks, total, ss;
|
||||
|
||||
if (bld == NULL) {
|
||||
ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
num = sk_OSSL_PARAM_BLD_DEF_num(bld->params);
|
||||
p_blks = ossl_param_bytes_to_blocks((1 + num) * sizeof(*params));
|
||||
total = OSSL_PARAM_ALIGN_SIZE * (p_blks + bld->total_blocks);
|
||||
ss = OSSL_PARAM_ALIGN_SIZE * bld->secure_blocks;
|
||||
|
||||
if (ss > 0) {
|
||||
s = OPENSSL_secure_malloc(ss);
|
||||
|
||||
@@ -519,6 +519,8 @@ int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen,
|
||||
X509_ALGOR_free(param->messageAuthScheme);
|
||||
param->keyDerivationFunc = alg;
|
||||
param->messageAuthScheme = hmac_alg;
|
||||
alg = NULL;
|
||||
hmac_alg = NULL;
|
||||
|
||||
X509_SIG_getm(p12->mac->dinfo, &macalg, &macoct);
|
||||
if (!ASN1_TYPE_pack_sequence(ASN1_ITEM_rptr(PBMAC1PARAM), param, &macalg->parameter))
|
||||
@@ -540,6 +542,8 @@ int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen,
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
X509_ALGOR_free(alg);
|
||||
X509_ALGOR_free(hmac_alg);
|
||||
PBMAC1PARAM_free(param);
|
||||
OPENSSL_free(known_salt);
|
||||
return ret;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -175,7 +175,7 @@ static int bmp_to_utf8(char *str, const unsigned char *utf16, int len)
|
||||
utf32chr += 0x10000;
|
||||
}
|
||||
|
||||
return UTF8_putc((unsigned char *)str, len > 4 ? 4 : len, utf32chr);
|
||||
return UTF8_putc((unsigned char *)str, 4, utf32chr);
|
||||
}
|
||||
|
||||
char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen)
|
||||
|
||||
@@ -831,6 +831,10 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
si_sk = p7->d.sign->signer_info;
|
||||
if (p7->d.sign->contents == NULL) {
|
||||
ERR_raise(ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT);
|
||||
goto err;
|
||||
}
|
||||
os = PKCS7_get_octet_string(p7->d.sign->contents);
|
||||
/* If detached data then the content is excluded */
|
||||
if (PKCS7_type_is_data(p7->d.sign->contents) && p7->detached) {
|
||||
@@ -841,6 +845,10 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
|
||||
break;
|
||||
|
||||
case NID_pkcs7_digest:
|
||||
if (p7->d.digest->contents == NULL) {
|
||||
ERR_raise(ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT);
|
||||
goto err;
|
||||
}
|
||||
os = PKCS7_get_octet_string(p7->d.digest->contents);
|
||||
/* If detached data then the content is excluded */
|
||||
if (PKCS7_type_is_data(p7->d.digest->contents) && p7->detached) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -48,7 +48,8 @@ long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg)
|
||||
break;
|
||||
case PKCS7_OP_GET_DETACHED_SIGNATURE:
|
||||
if (nid == NID_pkcs7_signed) {
|
||||
if (p7->d.sign == NULL || p7->d.sign->contents->d.ptr == NULL)
|
||||
if (p7->d.sign == NULL || p7->d.sign->contents == NULL
|
||||
|| p7->d.sign->contents->d.ptr == NULL)
|
||||
ret = 1;
|
||||
else
|
||||
ret = 0;
|
||||
@@ -742,6 +743,10 @@ int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7)
|
||||
break;
|
||||
|
||||
case NID_pkcs7_signed:
|
||||
if (p7->d.sign == NULL || p7->d.sign->contents == NULL) {
|
||||
ERR_raise(ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT);
|
||||
break;
|
||||
}
|
||||
os = p7->d.sign->contents->d.data;
|
||||
break;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -268,7 +268,7 @@ int ossl_a2ulabel(const char *in, char *out, size_t outlen)
|
||||
return -1;
|
||||
|
||||
while (1) {
|
||||
char *tmpptr = strchr(inptr, '.');
|
||||
const char *tmpptr = strchr(inptr, '.');
|
||||
size_t delta = tmpptr != NULL ? (size_t)(tmpptr - inptr) : strlen(inptr);
|
||||
|
||||
if (!HAS_PREFIX(inptr, "xn--")) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -27,7 +27,7 @@ void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
int *num, int encrypt)
|
||||
{
|
||||
register unsigned long v0, v1, t;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
unsigned long ti[2];
|
||||
unsigned char *iv, c, cc;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -26,7 +26,7 @@ void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
int *num)
|
||||
{
|
||||
register unsigned long v0, v1, t;
|
||||
register int n = *num;
|
||||
register int n = *num & 0x07;
|
||||
register long l = length;
|
||||
unsigned char d[8];
|
||||
register char *dp;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -246,6 +246,8 @@ err:
|
||||
BN_free(n);
|
||||
BN_free(e);
|
||||
BN_free(d);
|
||||
BN_clear_free(p);
|
||||
BN_clear_free(q);
|
||||
sk_BIGNUM_pop_free(factors, BN_clear_free);
|
||||
sk_BIGNUM_pop_free(exps, BN_clear_free);
|
||||
sk_BIGNUM_pop_free(coeffs, BN_clear_free);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2024-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2024-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -119,11 +119,11 @@ static int slh_sign_internal(SLH_DSA_HASH_CTX *hctx,
|
||||
/* Generate ht signature and append to the SLH-DSA signature */
|
||||
&& ossl_slh_ht_sign(hctx, pk_fors, sk_seed, pk_seed, tree_id, leaf_id,
|
||||
wpkt);
|
||||
*sig_len = sig_len_expected;
|
||||
ret = 1;
|
||||
err:
|
||||
if (!WPACKET_finish(wpkt))
|
||||
ret = 0;
|
||||
if (ret)
|
||||
*sig_len = sig_len_expected;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -232,6 +232,7 @@ static uint8_t *msg_encode(const uint8_t *msg, size_t msg_len,
|
||||
const uint8_t *ctx, size_t ctx_len, int encode,
|
||||
uint8_t *tmp, size_t tmp_len, size_t *out_len)
|
||||
{
|
||||
WPACKET pkt;
|
||||
uint8_t *encoded = NULL;
|
||||
size_t encoded_len;
|
||||
|
||||
@@ -240,11 +241,14 @@ static uint8_t *msg_encode(const uint8_t *msg, size_t msg_len,
|
||||
*out_len = msg_len;
|
||||
return (uint8_t *)msg;
|
||||
}
|
||||
|
||||
if (ctx_len > SLH_DSA_MAX_CONTEXT_STRING_LEN)
|
||||
return NULL;
|
||||
|
||||
/* Pure encoding */
|
||||
encoded_len = 1 + 1 + ctx_len + msg_len;
|
||||
if (encoded_len < msg_len) /* Check for overflow */
|
||||
return NULL;
|
||||
*out_len = encoded_len;
|
||||
if (encoded_len <= tmp_len) {
|
||||
encoded = tmp;
|
||||
@@ -253,10 +257,17 @@ static uint8_t *msg_encode(const uint8_t *msg, size_t msg_len,
|
||||
if (encoded == NULL)
|
||||
return NULL;
|
||||
}
|
||||
encoded[0] = 0;
|
||||
encoded[1] = (uint8_t)ctx_len;
|
||||
memcpy(&encoded[2], ctx, ctx_len);
|
||||
memcpy(&encoded[2 + ctx_len], msg, msg_len);
|
||||
if (!WPACKET_init_static_len(&pkt, encoded, encoded_len, 0)
|
||||
|| !WPACKET_put_bytes_u8(&pkt, 0)
|
||||
|| !WPACKET_put_bytes_u8(&pkt, (uint8_t)ctx_len)
|
||||
|| !WPACKET_memcpy(&pkt, ctx, ctx_len)
|
||||
|| !WPACKET_memcpy(&pkt, msg, msg_len)
|
||||
|| !WPACKET_finish(&pkt)) {
|
||||
if (encoded != tmp)
|
||||
OPENSSL_free(encoded);
|
||||
encoded = NULL;
|
||||
WPACKET_cleanup(&pkt);
|
||||
}
|
||||
return encoded;
|
||||
}
|
||||
|
||||
|
||||
50
libs/openssl/crypto/sm2/sm2_err.c
Normal file
50
libs/openssl/crypto/sm2/sm2_err.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Generated by util/mkerr.pl DO NOT EDIT
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
* in the file LICENSE in the source distribution or at
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#include <openssl/err.h>
|
||||
#include "crypto/sm2err.h"
|
||||
|
||||
#ifndef OPENSSL_NO_SM2
|
||||
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
|
||||
static const ERR_STRING_DATA SM2_str_reasons[] = {
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_ASN1_ERROR), "asn1 error" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_BAD_SIGNATURE), "bad signature" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_BUFFER_TOO_SMALL), "buffer too small" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_DIST_ID_TOO_LARGE), "dist id too large" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_ID_NOT_SET), "id not set" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_ID_TOO_LARGE), "id too large" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_INVALID_CURVE), "invalid curve" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_INVALID_DIGEST), "invalid digest" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_INVALID_DIGEST_TYPE),
|
||||
"invalid digest type" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_INVALID_ENCODING), "invalid encoding" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_INVALID_FIELD), "invalid field" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_INVALID_PRIVATE_KEY),
|
||||
"invalid private key" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_NO_PARAMETERS_SET), "no parameters set" },
|
||||
{ ERR_PACK(ERR_LIB_SM2, 0, SM2_R_USER_ID_TOO_LARGE), "user id too large" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
int ossl_err_load_SM2_strings(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
if (ERR_reason_error_string(SM2_str_reasons[0].error) == NULL)
|
||||
ERR_load_strings_const(SM2_str_reasons);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
NON_EMPTY_TRANSLATION_UNIT
|
||||
#endif
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -498,6 +498,10 @@ int OSSL_STORE_delete(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
|
||||
int res = 0;
|
||||
struct ossl_passphrase_data_st pwdata = { 0 };
|
||||
|
||||
if (uri == NULL) {
|
||||
ERR_raise(ERR_LIB_OSSL_STORE, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
OPENSSL_strlcpy(scheme, uri, sizeof(scheme));
|
||||
if ((p = strchr(scheme, ':')) != NULL)
|
||||
*p++ = '\0';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -50,7 +50,7 @@ typedef struct {
|
||||
* atomically updated
|
||||
*/
|
||||
struct rcu_qp {
|
||||
volatile uint64_t users;
|
||||
uint64_t users;
|
||||
};
|
||||
|
||||
struct thread_qp {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2004-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2004-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -680,8 +680,10 @@ int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
|
||||
} else {
|
||||
*pexplicit_policy = 1;
|
||||
/* Tree empty and requireExplicit True: Error */
|
||||
if (init_ret & X509_PCY_TREE_EMPTY)
|
||||
if (init_ret & X509_PCY_TREE_EMPTY) {
|
||||
X509_policy_tree_free(tree);
|
||||
return X509_PCY_TREE_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
ret = tree_evaluate(tree);
|
||||
@@ -707,13 +709,15 @@ int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
|
||||
if (!ret)
|
||||
goto error;
|
||||
|
||||
*ptree = tree;
|
||||
|
||||
if (init_ret & X509_PCY_TREE_EXPLICIT) {
|
||||
nodes = X509_policy_tree_get0_user_policies(tree);
|
||||
if (sk_X509_POLICY_NODE_num(nodes) <= 0)
|
||||
if (sk_X509_POLICY_NODE_num(nodes) <= 0) {
|
||||
X509_policy_tree_free(tree);
|
||||
return X509_PCY_TREE_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
*ptree = tree;
|
||||
return X509_PCY_TREE_VALID;
|
||||
|
||||
error:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -41,7 +41,7 @@ ASN1_SEQUENCE(OSSL_ISSUER_SERIAL) = {
|
||||
ASN1_OPT(OSSL_ISSUER_SERIAL, issuerUID, ASN1_BIT_STRING),
|
||||
} static_ASN1_SEQUENCE_END(OSSL_ISSUER_SERIAL)
|
||||
|
||||
ASN1_SEQUENCE(OSSL_OBJECT_DIGEST_INFO)
|
||||
ASN1_SEQUENCE(OSSL_OBJECT_DIGEST_INFO)
|
||||
= {
|
||||
ASN1_EMBED(OSSL_OBJECT_DIGEST_INFO, digestedObjectType, ASN1_ENUMERATED),
|
||||
ASN1_OPT(OSSL_OBJECT_DIGEST_INFO, otherObjectTypeID, ASN1_OBJECT),
|
||||
@@ -49,14 +49,14 @@ ASN1_SEQUENCE(OSSL_ISSUER_SERIAL) = {
|
||||
ASN1_EMBED(OSSL_OBJECT_DIGEST_INFO, objectDigest, ASN1_BIT_STRING),
|
||||
} static_ASN1_SEQUENCE_END(OSSL_OBJECT_DIGEST_INFO)
|
||||
|
||||
ASN1_SEQUENCE(OSSL_TARGET_CERT)
|
||||
ASN1_SEQUENCE(OSSL_TARGET_CERT)
|
||||
= {
|
||||
ASN1_SIMPLE(OSSL_TARGET_CERT, targetCertificate, OSSL_ISSUER_SERIAL),
|
||||
ASN1_OPT(OSSL_TARGET_CERT, targetName, GENERAL_NAME),
|
||||
ASN1_OPT(OSSL_TARGET_CERT, certDigestInfo, OSSL_OBJECT_DIGEST_INFO),
|
||||
} static_ASN1_SEQUENCE_END(OSSL_TARGET_CERT)
|
||||
|
||||
ASN1_CHOICE(OSSL_TARGET)
|
||||
ASN1_CHOICE(OSSL_TARGET)
|
||||
= {
|
||||
ASN1_EXP(OSSL_TARGET, choice.targetName, GENERAL_NAME, 0),
|
||||
ASN1_EXP(OSSL_TARGET, choice.targetGroup, GENERAL_NAME, 1),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -256,7 +256,7 @@ err:
|
||||
|
||||
static int displaytext_get_tag_len(const char *tagstr)
|
||||
{
|
||||
char *colon = strchr(tagstr, ':');
|
||||
const char *colon = strchr(tagstr, ':');
|
||||
|
||||
return (colon == NULL) ? -1 : colon - tagstr;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -191,9 +191,9 @@ static int unknown_ext_print(BIO *out, const unsigned char *ext, int extlen,
|
||||
return 1;
|
||||
|
||||
case X509V3_EXT_PARSE_UNKNOWN:
|
||||
return ASN1_parse_dump(out, ext, extlen, indent, -1);
|
||||
return ASN1_parse_dump(out, ext, extlen, indent, -1) > 0;
|
||||
case X509V3_EXT_DUMP_UNKNOWN:
|
||||
return BIO_dump_indent(out, (const char *)ext, extlen, indent);
|
||||
return BIO_dump_indent(out, (const char *)ext, extlen, indent) > 0;
|
||||
|
||||
default:
|
||||
return 1;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -630,7 +630,8 @@ GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
|
||||
|
||||
static int do_othername(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx)
|
||||
{
|
||||
char *objtmp = NULL, *p;
|
||||
char *objtmp = NULL;
|
||||
const char *p;
|
||||
int objlen;
|
||||
|
||||
if ((p = strchr(value, ';')) == NULL)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2024-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -167,7 +167,7 @@ static int i2r_OSSL_DAY_TIME(X509V3_EXT_METHOD *method,
|
||||
return 0;
|
||||
if (dt->minute && !ASN1_INTEGER_get_int64(&m, dt->minute))
|
||||
return 0;
|
||||
if (dt->minute && !ASN1_INTEGER_get_int64(&s, dt->second))
|
||||
if (dt->second && !ASN1_INTEGER_get_int64(&s, dt->second))
|
||||
return 0;
|
||||
return BIO_printf(out, "%02lld:%02lld:%02lld",
|
||||
(long long int)h, (long long int)m, (long long int)s)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -1120,15 +1120,16 @@ ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc)
|
||||
ASN1_OCTET_STRING *ret = NULL;
|
||||
unsigned char ipout[32];
|
||||
char *iptmp = NULL, *p;
|
||||
const char *slash;
|
||||
int iplen1, iplen2;
|
||||
|
||||
p = strchr(ipasc, '/');
|
||||
if (p == NULL)
|
||||
slash = strchr(ipasc, '/');
|
||||
if (slash == NULL)
|
||||
return NULL;
|
||||
iptmp = OPENSSL_strdup(ipasc);
|
||||
if (iptmp == NULL)
|
||||
return NULL;
|
||||
p = iptmp + (p - ipasc);
|
||||
p = iptmp + (slash - ipasc);
|
||||
*p++ = 0;
|
||||
|
||||
iplen1 = ossl_a2i_ipadd(ipout, iptmp);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -1123,6 +1123,7 @@ static int check_cert(X509_STORE_CTX *ctx)
|
||||
goto done;
|
||||
}
|
||||
|
||||
ctx->current_crl = NULL;
|
||||
X509_CRL_free(crl);
|
||||
X509_CRL_free(dcrl);
|
||||
crl = NULL;
|
||||
@@ -1307,6 +1308,8 @@ static int check_delta_base(X509_CRL *delta, X509_CRL *base)
|
||||
if (ASN1_INTEGER_cmp(delta->base_crl_number, base->crl_number) > 0)
|
||||
return 0;
|
||||
/* Delta CRL number must exceed full CRL number */
|
||||
if (delta->crl_number == NULL)
|
||||
return 0;
|
||||
return ASN1_INTEGER_cmp(delta->crl_number, base->crl_number) > 0;
|
||||
}
|
||||
|
||||
@@ -3015,7 +3018,7 @@ static int dane_match_cert(X509_STORE_CTX *ctx, X509 *cert, int depth)
|
||||
break;
|
||||
}
|
||||
|
||||
OPENSSL_free(dane->mcert);
|
||||
X509_free(dane->mcert);
|
||||
dane->mcert = cert;
|
||||
dane->mdpth = depth;
|
||||
dane->mtlsa = t;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -65,8 +65,8 @@ ASN1_SEQUENCE(X509_PUBKEY_INTERNAL) = {
|
||||
ASN1_SIMPLE(X509_PUBKEY, public_key, ASN1_BIT_STRING)
|
||||
} static_ASN1_SEQUENCE_END_name(X509_PUBKEY, X509_PUBKEY_INTERNAL)
|
||||
|
||||
X509_PUBKEY
|
||||
* ossl_d2i_X509_PUBKEY_INTERNAL(const unsigned char **pp, long len, OSSL_LIB_CTX *libctx, const char *propq)
|
||||
X509_PUBKEY
|
||||
*ossl_d2i_X509_PUBKEY_INTERNAL(const unsigned char **pp, long len, OSSL_LIB_CTX *libctx, const char *propq)
|
||||
{
|
||||
X509_PUBKEY *xpub = OPENSSL_zalloc(sizeof(*xpub));
|
||||
|
||||
|
||||
51
libs/openssl/doc/man3/X509V3_EXT_print.pod
Normal file
51
libs/openssl/doc/man3/X509V3_EXT_print.pod
Normal file
@@ -0,0 +1,51 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
X509V3_EXT_print, X509V3_EXT_print_fp - pretty print X509 certificate extensions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent);
|
||||
int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
X509V3_EXT_print() and X509V3_EXT_print_fp() parse and print the extension
|
||||
info from I<ext> to I<bio> or I<out> with indentation set via I<indent>.
|
||||
I<flag> determines the behaviour if an extension could not be parsed and can be
|
||||
one of:
|
||||
B<X509V3_EXT_DEFAULT> (equivalent to 0): an unknown or unparsable extension
|
||||
stops the parsing and the function returns a failure.
|
||||
B<X509V3_EXT_PARSE_UNKNOWN>: an unknown or unparsable extension is handled by
|
||||
printing it through the B<ASN1_parse_dump()> function, and the function returns
|
||||
success.
|
||||
B<X509V3_EXT_DUMP_UNKNOWN>: an unknown or unparsable extension is handled by
|
||||
printing it through the B<BIO_dump_indent()> function, and the function returns
|
||||
success,
|
||||
B<X509V3_EXT_ERROR_UNKNOWN>: an unknown or unparsable extension is handled by
|
||||
printing either "<Not Supported>" or "<Parse Error>", and the function returns
|
||||
success.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
X509V3_EXT_print() and X509V3_EXT_print_fp() return 1 for success and 0 for
|
||||
failure.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<BIO_dump_indent(3)>,
|
||||
L<ASN1_parse_dump(3)>,
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -77,7 +77,9 @@ void AES_xts_decrypt(const unsigned char *inp, unsigned char *out, size_t len,
|
||||
#define HWAES_xts_decrypt aes_p8_xts_decrypt
|
||||
#endif /* OPENSSL_SYS_MACOSX */
|
||||
#if !defined(OPENSSL_SYS_AIX) && !defined(OPENSSL_SYS_MACOSX)
|
||||
#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||
#define PPC_AES_GCM_CAPABLE (OPENSSL_ppccap_P & PPC_MADD300)
|
||||
#endif
|
||||
#define AES_GCM_ENC_BYTES 128
|
||||
#define AES_GCM_DEC_BYTES 128
|
||||
size_t ppc_aes_gcm_encrypt(const unsigned char *in, unsigned char *out,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2015-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2015-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -488,17 +488,17 @@ struct evp_cipher_st {
|
||||
BLOCK_CIPHER_def1(cname, ecb, ecb, ECB, kstruct, nid, block_size, key_len, \
|
||||
0, flags, init_key, cleanup, set_asn1, get_asn1, ctrl)
|
||||
|
||||
#define BLOCK_CIPHER_defs(cname, kstruct, \
|
||||
nid, block_size, key_len, iv_len, cbits, flags, \
|
||||
init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_cbc(cname, kstruct, nid, block_size, key_len, iv_len, flags, \
|
||||
init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_cfb(cname, kstruct, nid, key_len, iv_len, cbits, \
|
||||
flags, init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_ofb(cname, kstruct, nid, key_len, iv_len, cbits, \
|
||||
flags, init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_ecb(cname, kstruct, nid, block_size, key_len, flags, \
|
||||
init_key, cleanup, set_asn1, get_asn1, ctrl)
|
||||
#define BLOCK_CIPHER_defs(cname, kstruct, \
|
||||
nid, block_size, key_len, iv_len, cbits, flags, \
|
||||
init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_cbc(cname, kstruct, nid, block_size, key_len, iv_len, flags, \
|
||||
init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_cfb(cname, kstruct, nid, key_len, iv_len, cbits, \
|
||||
flags, init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_ofb(cname, kstruct, nid, key_len, iv_len, cbits, \
|
||||
flags, init_key, cleanup, set_asn1, get_asn1, ctrl) \
|
||||
BLOCK_CIPHER_def_ecb(cname, kstruct, nid, block_size, key_len, flags, \
|
||||
init_key, cleanup, set_asn1, get_asn1, ctrl)
|
||||
|
||||
/*-
|
||||
#define BLOCK_CIPHER_defs(cname, kstruct, \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Generated by util/mkerr.pl DO NOT EDIT
|
||||
* Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -62,7 +62,7 @@ extern "C" {
|
||||
} \
|
||||
static ossl_unused ossl_inline int \
|
||||
ossl_sa_##type##_set(SPARSE_ARRAY_OF(type) * sa, \
|
||||
ossl_uintmax_t n, ctype * val) \
|
||||
ossl_uintmax_t n, ctype *val) \
|
||||
{ \
|
||||
return ossl_sa_set((OPENSSL_SA *)sa, n, (void *)val); \
|
||||
} \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2022-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2022-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -54,9 +54,8 @@ typedef struct {
|
||||
OSSL_SAFE_MATH_UNSIGNED(time, uint64_t)
|
||||
|
||||
/* Convert a tick count into a time */
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_ticks2time(uint64_t ticks)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_ticks2time(uint64_t ticks)
|
||||
{
|
||||
OSSL_TIME r;
|
||||
|
||||
@@ -65,9 +64,8 @@ static ossl_unused ossl_inline
|
||||
}
|
||||
|
||||
/* Convert a time to a tick count */
|
||||
static ossl_unused ossl_inline
|
||||
uint64_t
|
||||
ossl_time2ticks(OSSL_TIME t)
|
||||
static ossl_unused ossl_inline uint64_t
|
||||
ossl_time2ticks(OSSL_TIME t)
|
||||
{
|
||||
return t.t;
|
||||
}
|
||||
@@ -76,16 +74,14 @@ static ossl_unused ossl_inline
|
||||
OSSL_TIME ossl_time_now(void);
|
||||
|
||||
/* The beginning and end of the time range */
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_zero(void)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_zero(void)
|
||||
{
|
||||
return ossl_ticks2time(0);
|
||||
}
|
||||
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_infinite(void)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_infinite(void)
|
||||
{
|
||||
return ossl_ticks2time(~(uint64_t)0);
|
||||
}
|
||||
@@ -114,9 +110,8 @@ static ossl_unused ossl_inline struct timeval ossl_time_to_timeval(OSSL_TIME t)
|
||||
}
|
||||
|
||||
/* Convert timeval to time */
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_from_timeval(struct timeval tv)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_from_timeval(struct timeval tv)
|
||||
{
|
||||
OSSL_TIME t;
|
||||
|
||||
@@ -137,9 +132,8 @@ static ossl_unused ossl_inline
|
||||
}
|
||||
|
||||
/* Convert time_t to OSSL_TIME */
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_from_time_t(time_t t)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_from_time_t(time_t t)
|
||||
{
|
||||
OSSL_TIME ot;
|
||||
|
||||
@@ -170,9 +164,8 @@ static ossl_unused ossl_inline int ossl_time_is_infinite(OSSL_TIME t)
|
||||
return ossl_time_compare(t, ossl_time_infinite()) == 0;
|
||||
}
|
||||
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_add(OSSL_TIME a, OSSL_TIME b)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_add(OSSL_TIME a, OSSL_TIME b)
|
||||
{
|
||||
OSSL_TIME r;
|
||||
int err = 0;
|
||||
@@ -181,9 +174,8 @@ static ossl_unused ossl_inline
|
||||
return err ? ossl_time_infinite() : r;
|
||||
}
|
||||
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_subtract(OSSL_TIME a, OSSL_TIME b)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_subtract(OSSL_TIME a, OSSL_TIME b)
|
||||
{
|
||||
OSSL_TIME r;
|
||||
int err = 0;
|
||||
@@ -193,17 +185,15 @@ static ossl_unused ossl_inline
|
||||
}
|
||||
|
||||
/* Returns |a - b|. */
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_abs_difference(OSSL_TIME a, OSSL_TIME b)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_abs_difference(OSSL_TIME a, OSSL_TIME b)
|
||||
{
|
||||
return a.t > b.t ? ossl_time_subtract(a, b)
|
||||
: ossl_time_subtract(b, a);
|
||||
}
|
||||
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_multiply(OSSL_TIME a, uint64_t b)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_multiply(OSSL_TIME a, uint64_t b)
|
||||
{
|
||||
OSSL_TIME r;
|
||||
int err = 0;
|
||||
@@ -212,9 +202,8 @@ static ossl_unused ossl_inline
|
||||
return err ? ossl_time_infinite() : r;
|
||||
}
|
||||
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_divide(OSSL_TIME a, uint64_t b)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_divide(OSSL_TIME a, uint64_t b)
|
||||
{
|
||||
OSSL_TIME r;
|
||||
int err = 0;
|
||||
@@ -223,9 +212,8 @@ static ossl_unused ossl_inline
|
||||
return err ? ossl_time_zero() : r;
|
||||
}
|
||||
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_muldiv(OSSL_TIME a, uint64_t b, uint64_t c)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_muldiv(OSSL_TIME a, uint64_t b, uint64_t c)
|
||||
{
|
||||
OSSL_TIME r;
|
||||
int err = 0;
|
||||
@@ -235,17 +223,15 @@ static ossl_unused ossl_inline
|
||||
}
|
||||
|
||||
/* Return higher of the two given time values. */
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_max(OSSL_TIME a, OSSL_TIME b)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_max(OSSL_TIME a, OSSL_TIME b)
|
||||
{
|
||||
return a.t > b.t ? a : b;
|
||||
}
|
||||
|
||||
/* Return the lower of the two given time values. */
|
||||
static ossl_unused ossl_inline
|
||||
OSSL_TIME
|
||||
ossl_time_min(OSSL_TIME a, OSSL_TIME b)
|
||||
static ossl_unused ossl_inline OSSL_TIME
|
||||
ossl_time_min(OSSL_TIME a, OSSL_TIME b)
|
||||
{
|
||||
return a.t < b.t ? a : b;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* WARNING: do not edit!
|
||||
* Generated by makefile from include\openssl\cmp.h.in
|
||||
*
|
||||
* Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2007-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright Nokia 2007-2019
|
||||
* Copyright Siemens AG 2015-2019
|
||||
*
|
||||
@@ -196,6 +196,8 @@ typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO;
|
||||
* -- CertReqMsg
|
||||
* }
|
||||
*/
|
||||
#define OSSL_CMP_PKISTATUS_rejected_by_client -5
|
||||
#define OSSL_CMP_PKISTATUS_checking_response -4
|
||||
#define OSSL_CMP_PKISTATUS_request -3
|
||||
#define OSSL_CMP_PKISTATUS_trans -2
|
||||
#define OSSL_CMP_PKISTATUS_unspecified -1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -162,16 +162,16 @@ OSSL_CORE_MAKE_FUNC(void,
|
||||
|
||||
OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_file, (const char *filename, const char *mode))
|
||||
OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_membuf, (const void *buf, int len))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_read_ex, (OSSL_CORE_BIO * bio, void *data, size_t data_len, size_t *bytes_read))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_write_ex, (OSSL_CORE_BIO * bio, const void *data, size_t data_len, size_t *written))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_gets, (OSSL_CORE_BIO * bio, char *buf, int size))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_puts, (OSSL_CORE_BIO * bio, const char *str))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_up_ref, (OSSL_CORE_BIO * bio))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_free, (OSSL_CORE_BIO * bio))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_vprintf, (OSSL_CORE_BIO * bio, const char *format, va_list args))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_read_ex, (OSSL_CORE_BIO *bio, void *data, size_t data_len, size_t *bytes_read))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_write_ex, (OSSL_CORE_BIO *bio, const void *data, size_t data_len, size_t *written))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_gets, (OSSL_CORE_BIO *bio, char *buf, int size))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_puts, (OSSL_CORE_BIO *bio, const char *str))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_up_ref, (OSSL_CORE_BIO *bio))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_free, (OSSL_CORE_BIO *bio))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_vprintf, (OSSL_CORE_BIO *bio, const char *format, va_list args))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_vsnprintf,
|
||||
(char *buf, size_t n, const char *fmt, va_list args))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_ctrl, (OSSL_CORE_BIO * bio, int cmd, long num, void *ptr))
|
||||
OSSL_CORE_MAKE_FUNC(int, BIO_ctrl, (OSSL_CORE_BIO *bio, int cmd, long num, void *ptr))
|
||||
|
||||
/* New seeding functions prototypes with the 101-104 series */
|
||||
#define OSSL_FUNC_CLEANUP_USER_ENTROPY 96
|
||||
@@ -180,9 +180,9 @@ OSSL_CORE_MAKE_FUNC(int, BIO_ctrl, (OSSL_CORE_BIO * bio, int cmd, long num, void
|
||||
#define OSSL_FUNC_GET_USER_NONCE 99
|
||||
|
||||
#define OSSL_FUNC_INDICATOR_CB 95
|
||||
OSSL_CORE_MAKE_FUNC(void, indicator_cb, (OPENSSL_CORE_CTX * ctx, OSSL_INDICATOR_CALLBACK **cb))
|
||||
OSSL_CORE_MAKE_FUNC(void, indicator_cb, (OPENSSL_CORE_CTX *ctx, OSSL_INDICATOR_CALLBACK **cb))
|
||||
#define OSSL_FUNC_SELF_TEST_CB 100
|
||||
OSSL_CORE_MAKE_FUNC(void, self_test_cb, (OPENSSL_CORE_CTX * ctx, OSSL_CALLBACK **cb, void **cbarg))
|
||||
OSSL_CORE_MAKE_FUNC(void, self_test_cb, (OPENSSL_CORE_CTX *ctx, OSSL_CALLBACK **cb, void **cbarg))
|
||||
|
||||
/* Functions to get seed material from the operating system */
|
||||
#define OSSL_FUNC_GET_ENTROPY 101
|
||||
@@ -257,26 +257,26 @@ OSSL_CORE_MAKE_FUNC(int, provider_random_bytes, (void *provctx, int which, void
|
||||
/* Libssl related functions */
|
||||
#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_SEND 2001
|
||||
OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_send,
|
||||
(SSL * s, const unsigned char *buf, size_t buf_len,
|
||||
(SSL *s, const unsigned char *buf, size_t buf_len,
|
||||
size_t *consumed, void *arg))
|
||||
#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_RECV_RCD 2002
|
||||
OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_recv_rcd,
|
||||
(SSL * s, const unsigned char **buf, size_t *bytes_read,
|
||||
(SSL *s, const unsigned char **buf, size_t *bytes_read,
|
||||
void *arg))
|
||||
#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_RELEASE_RCD 2003
|
||||
OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_release_rcd,
|
||||
(SSL * s, size_t bytes_read, void *arg))
|
||||
(SSL *s, size_t bytes_read, void *arg))
|
||||
#define OSSL_FUNC_SSL_QUIC_TLS_YIELD_SECRET 2004
|
||||
OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_yield_secret,
|
||||
(SSL * s, uint32_t prot_level, int direction,
|
||||
(SSL *s, uint32_t prot_level, int direction,
|
||||
const unsigned char *secret, size_t secret_len, void *arg))
|
||||
#define OSSL_FUNC_SSL_QUIC_TLS_GOT_TRANSPORT_PARAMS 2005
|
||||
OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_got_transport_params,
|
||||
(SSL * s, const unsigned char *params, size_t params_len,
|
||||
(SSL *s, const unsigned char *params, size_t params_len,
|
||||
void *arg))
|
||||
#define OSSL_FUNC_SSL_QUIC_TLS_ALERT 2006
|
||||
OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_alert,
|
||||
(SSL * s, unsigned char alert_code, void *arg))
|
||||
(SSL *s, unsigned char alert_code, void *arg))
|
||||
|
||||
/* Operations */
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Generated by util/mkerr.pl DO NOT EDIT
|
||||
* Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
#define HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN 108
|
||||
#define HTTP_R_CONNECT_FAILURE 100
|
||||
#define HTTP_R_CONTENT_TYPE_MISMATCH 131
|
||||
#define HTTP_R_ERROR_PARSING_ASN1_LENGTH 109
|
||||
#define HTTP_R_ERROR_PARSING_CONTENT_LENGTH 119
|
||||
#define HTTP_R_ERROR_PARSING_URL 101
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -168,6 +168,7 @@
|
||||
* 'no-deprecated'.
|
||||
*/
|
||||
|
||||
#undef OPENSSL_NO_DEPRECATED_3_5
|
||||
#undef OPENSSL_NO_DEPRECATED_3_4
|
||||
#undef OPENSSL_NO_DEPRECATED_3_1
|
||||
#undef OPENSSL_NO_DEPRECATED_3_0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -334,13 +334,13 @@ struct rsa_pss_params_st {
|
||||
DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS)
|
||||
DECLARE_ASN1_DUP_FUNCTION(RSA_PSS_PARAMS)
|
||||
|
||||
typedef struct rsa_oaep_params_st {
|
||||
struct rsa_oaep_params_st {
|
||||
X509_ALGOR *hashFunc;
|
||||
X509_ALGOR *maskGenFunc;
|
||||
X509_ALGOR *pSourceFunc;
|
||||
/* Decoded hash algorithm from maskGenFunc */
|
||||
X509_ALGOR *maskHash;
|
||||
} RSA_OAEP_PARAMS;
|
||||
};
|
||||
|
||||
DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2001-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -155,7 +155,9 @@ typedef struct dsa_method DSA_METHOD;
|
||||
typedef struct rsa_st RSA;
|
||||
typedef struct rsa_meth_st RSA_METHOD;
|
||||
#endif
|
||||
|
||||
typedef struct rsa_pss_params_st RSA_PSS_PARAMS;
|
||||
typedef struct rsa_oaep_params_st RSA_OAEP_PARAMS;
|
||||
|
||||
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||
typedef struct ec_key_st EC_KEY;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -27,7 +27,7 @@
|
||||
#define OCB_MIN_IV_LEN 1
|
||||
#define OCB_MAX_IV_LEN 15
|
||||
|
||||
PROV_CIPHER_FUNC(int, ocb_cipher, (PROV_AES_OCB_CTX * ctx, const unsigned char *in, unsigned char *out, size_t nextblock));
|
||||
PROV_CIPHER_FUNC(int, ocb_cipher, (PROV_AES_OCB_CTX *ctx, const unsigned char *in, unsigned char *out, size_t nextblock));
|
||||
/* forward declarations */
|
||||
static OSSL_FUNC_cipher_encrypt_init_fn aes_ocb_einit;
|
||||
static OSSL_FUNC_cipher_decrypt_init_fn aes_ocb_dinit;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -691,6 +691,10 @@ int ossl_cipher_generic_set_ctx_params(void *vctx, const OSSL_PARAM params[])
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
if (ctx->blocksize > 0 && num >= (unsigned int)ctx->blocksize) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
ctx->num = num;
|
||||
}
|
||||
return 1;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -48,13 +48,13 @@ typedef struct prov_ccm_st {
|
||||
const PROV_CCM_HW *hw; /* hardware specific methods */
|
||||
} PROV_CCM_CTX;
|
||||
|
||||
PROV_CIPHER_FUNC(int, CCM_cipher, (PROV_CCM_CTX * ctx, unsigned char *out, size_t *padlen, const unsigned char *in, size_t len));
|
||||
PROV_CIPHER_FUNC(int, CCM_setkey, (PROV_CCM_CTX * ctx, const unsigned char *key, size_t keylen));
|
||||
PROV_CIPHER_FUNC(int, CCM_setiv, (PROV_CCM_CTX * dat, const unsigned char *iv, size_t ivlen, size_t mlen));
|
||||
PROV_CIPHER_FUNC(int, CCM_setaad, (PROV_CCM_CTX * ctx, const unsigned char *aad, size_t aadlen));
|
||||
PROV_CIPHER_FUNC(int, CCM_auth_encrypt, (PROV_CCM_CTX * ctx, const unsigned char *in, unsigned char *out, size_t len, unsigned char *tag, size_t taglen));
|
||||
PROV_CIPHER_FUNC(int, CCM_auth_decrypt, (PROV_CCM_CTX * ctx, const unsigned char *in, unsigned char *out, size_t len, unsigned char *tag, size_t taglen));
|
||||
PROV_CIPHER_FUNC(int, CCM_gettag, (PROV_CCM_CTX * ctx, unsigned char *tag, size_t taglen));
|
||||
PROV_CIPHER_FUNC(int, CCM_cipher, (PROV_CCM_CTX *ctx, unsigned char *out, size_t *padlen, const unsigned char *in, size_t len));
|
||||
PROV_CIPHER_FUNC(int, CCM_setkey, (PROV_CCM_CTX *ctx, const unsigned char *key, size_t keylen));
|
||||
PROV_CIPHER_FUNC(int, CCM_setiv, (PROV_CCM_CTX *dat, const unsigned char *iv, size_t ivlen, size_t mlen));
|
||||
PROV_CIPHER_FUNC(int, CCM_setaad, (PROV_CCM_CTX *ctx, const unsigned char *aad, size_t aadlen));
|
||||
PROV_CIPHER_FUNC(int, CCM_auth_encrypt, (PROV_CCM_CTX *ctx, const unsigned char *in, unsigned char *out, size_t len, unsigned char *tag, size_t taglen));
|
||||
PROV_CIPHER_FUNC(int, CCM_auth_decrypt, (PROV_CCM_CTX *ctx, const unsigned char *in, unsigned char *out, size_t len, unsigned char *tag, size_t taglen));
|
||||
PROV_CIPHER_FUNC(int, CCM_gettag, (PROV_CCM_CTX *ctx, unsigned char *tag, size_t taglen));
|
||||
|
||||
/*
|
||||
* CCM Mode internal method table used to handle hardware specific differences,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
/*
|
||||
* Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -81,12 +81,12 @@ typedef struct prov_gcm_ctx_st {
|
||||
ctr128_f ctr;
|
||||
} PROV_GCM_CTX;
|
||||
|
||||
PROV_CIPHER_FUNC(int, GCM_setkey, (PROV_GCM_CTX * ctx, const unsigned char *key, size_t keylen));
|
||||
PROV_CIPHER_FUNC(int, GCM_setiv, (PROV_GCM_CTX * dat, const unsigned char *iv, size_t ivlen));
|
||||
PROV_CIPHER_FUNC(int, GCM_aadupdate, (PROV_GCM_CTX * ctx, const unsigned char *aad, size_t aadlen));
|
||||
PROV_CIPHER_FUNC(int, GCM_cipherupdate, (PROV_GCM_CTX * ctx, const unsigned char *in, size_t len, unsigned char *out));
|
||||
PROV_CIPHER_FUNC(int, GCM_cipherfinal, (PROV_GCM_CTX * ctx, unsigned char *tag));
|
||||
PROV_CIPHER_FUNC(int, GCM_oneshot, (PROV_GCM_CTX * ctx, unsigned char *aad, size_t aad_len, const unsigned char *in, size_t in_len, unsigned char *out, unsigned char *tag, size_t taglen));
|
||||
PROV_CIPHER_FUNC(int, GCM_setkey, (PROV_GCM_CTX *ctx, const unsigned char *key, size_t keylen));
|
||||
PROV_CIPHER_FUNC(int, GCM_setiv, (PROV_GCM_CTX *dat, const unsigned char *iv, size_t ivlen));
|
||||
PROV_CIPHER_FUNC(int, GCM_aadupdate, (PROV_GCM_CTX *ctx, const unsigned char *aad, size_t aadlen));
|
||||
PROV_CIPHER_FUNC(int, GCM_cipherupdate, (PROV_GCM_CTX *ctx, const unsigned char *in, size_t len, unsigned char *out));
|
||||
PROV_CIPHER_FUNC(int, GCM_cipherfinal, (PROV_GCM_CTX *ctx, unsigned char *tag));
|
||||
PROV_CIPHER_FUNC(int, GCM_oneshot, (PROV_GCM_CTX *ctx, unsigned char *aad, size_t aad_len, const unsigned char *in, size_t in_len, unsigned char *out, unsigned char *tag, size_t taglen));
|
||||
struct prov_gcm_hw_st {
|
||||
OSSL_GCM_setkey_fn setkey;
|
||||
OSSL_GCM_setiv_fn setiv;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1999-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -266,6 +266,15 @@ static int kdf_pkcs12_set_ctx_params(void *vctx, const OSSL_PARAM params[])
|
||||
if ((p = OSSL_PARAM_locate_const(params, OSSL_KDF_PARAM_ITER)) != NULL)
|
||||
if (!OSSL_PARAM_get_uint64(p, &ctx->iter))
|
||||
return 0;
|
||||
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||
/*
|
||||
* If we're running the fuzzer, limit iteration count to
|
||||
* 100 so we don't time out running the derivation for
|
||||
* a really long time
|
||||
*/
|
||||
if (getenv("OPENSSL_RUNNING_UNIT_TESTS") == NULL && p != NULL && ctx->iter > 100)
|
||||
ctx->iter = 100;
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -316,17 +316,19 @@ static int rsasve_generate(PROV_RSA_CTX *prsactx,
|
||||
return 0;
|
||||
|
||||
/* Step(3): out = RSAEP((n,e), z) */
|
||||
ret = RSA_public_encrypt(nlen, secret, out, prsactx->rsa, RSA_NO_PADDING);
|
||||
if (ret) {
|
||||
ret = 1;
|
||||
if (outlen != NULL)
|
||||
*outlen = nlen;
|
||||
if (secretlen != NULL)
|
||||
*secretlen = nlen;
|
||||
} else {
|
||||
ret = RSA_public_encrypt((int)nlen, secret, out, prsactx->rsa,
|
||||
RSA_NO_PADDING);
|
||||
if (ret <= 0 || ret != (int)nlen) {
|
||||
OPENSSL_cleanse(secret, nlen);
|
||||
return 0;
|
||||
}
|
||||
return ret;
|
||||
|
||||
if (outlen != NULL)
|
||||
*outlen = nlen;
|
||||
if (secretlen != NULL)
|
||||
*secretlen = nlen;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2024-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2024-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -799,7 +799,7 @@ static void ml_kem_gen_cleanup(void *vgctx)
|
||||
return;
|
||||
|
||||
if (gctx->seed != NULL)
|
||||
OPENSSL_cleanse(gctx->seed, ML_KEM_RANDOM_BYTES);
|
||||
OPENSSL_cleanse(gctx->seed, ML_KEM_SEED_BYTES);
|
||||
OPENSSL_free(gctx->propq);
|
||||
OPENSSL_free(gctx);
|
||||
}
|
||||
|
||||
@@ -437,7 +437,7 @@ static int drbg_fetch_algs_from_prov(const OSSL_PARAM params[],
|
||||
|
||||
p = OSSL_PARAM_locate_const(params, OSSL_ALG_PARAM_DIGEST);
|
||||
if (p) {
|
||||
if (OSSL_PARAM_get_utf8_string_ptr(p, &digest_name)) {
|
||||
if (!OSSL_PARAM_get_utf8_string_ptr(p, &digest_name)) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_VALUE_ERROR);
|
||||
goto done;
|
||||
}
|
||||
@@ -458,7 +458,7 @@ static int drbg_fetch_algs_from_prov(const OSSL_PARAM params[],
|
||||
if (p == NULL) {
|
||||
hmac_name = "HMAC";
|
||||
} else {
|
||||
if (OSSL_PARAM_get_utf8_string_ptr(p, &hmac_name)) {
|
||||
if (!OSSL_PARAM_get_utf8_string_ptr(p, &hmac_name)) {
|
||||
ERR_raise(ERR_LIB_PROV, PROV_R_VALUE_ERROR);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -634,13 +634,14 @@ static void *dsa_dupctx(void *vpdsactx)
|
||||
if (!ossl_prov_is_running())
|
||||
return NULL;
|
||||
|
||||
dstctx = OPENSSL_zalloc(sizeof(*srcctx));
|
||||
if (dstctx == NULL)
|
||||
if ((dstctx = OPENSSL_memdup(srcctx, sizeof(*srcctx))) == NULL)
|
||||
return NULL;
|
||||
|
||||
*dstctx = *srcctx;
|
||||
dstctx->dsa = NULL;
|
||||
dstctx->propq = NULL;
|
||||
dstctx->md = NULL;
|
||||
dstctx->mdctx = NULL;
|
||||
dstctx->sig = NULL;
|
||||
|
||||
if (srcctx->dsa != NULL && !DSA_up_ref(srcctx->dsa))
|
||||
goto err;
|
||||
@@ -650,18 +651,15 @@ static void *dsa_dupctx(void *vpdsactx)
|
||||
goto err;
|
||||
dstctx->md = srcctx->md;
|
||||
|
||||
if (srcctx->mdctx != NULL) {
|
||||
dstctx->mdctx = EVP_MD_CTX_new();
|
||||
if (dstctx->mdctx == NULL
|
||||
|| !EVP_MD_CTX_copy_ex(dstctx->mdctx, srcctx->mdctx))
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (srcctx->propq != NULL) {
|
||||
dstctx->propq = OPENSSL_strdup(srcctx->propq);
|
||||
if (dstctx->propq == NULL)
|
||||
goto err;
|
||||
}
|
||||
if (srcctx->mdctx != NULL
|
||||
&& (dstctx->mdctx = EVP_MD_CTX_dup(srcctx->mdctx)) == NULL)
|
||||
goto err;
|
||||
if (srcctx->propq != NULL
|
||||
&& ((dstctx->propq = OPENSSL_strdup(srcctx->propq)) == NULL))
|
||||
goto err;
|
||||
if (srcctx->sig != NULL
|
||||
&& ((dstctx->sig = OPENSSL_memdup(srcctx->sig, srcctx->siglen)) == NULL))
|
||||
goto err;
|
||||
|
||||
return dstctx;
|
||||
err:
|
||||
@@ -972,6 +970,12 @@ static int dsa_sigalg_set_ctx_params(void *vpdsactx, const OSSL_PARAM params[])
|
||||
if (!OSSL_PARAM_get_octet_string(p, (void **)&pdsactx->sig,
|
||||
0, &pdsactx->siglen))
|
||||
return 0;
|
||||
/* The signature must not be empty */
|
||||
if (pdsactx->siglen == 0) {
|
||||
OPENSSL_free(pdsactx->sig);
|
||||
pdsactx->sig = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -630,40 +630,37 @@ static void *ecdsa_dupctx(void *vctx)
|
||||
PROV_ECDSA_CTX *srcctx = (PROV_ECDSA_CTX *)vctx;
|
||||
PROV_ECDSA_CTX *dstctx;
|
||||
|
||||
if (!ossl_prov_is_running())
|
||||
/* Test KATS should not need to be supported */
|
||||
if (!ossl_prov_is_running()
|
||||
|| srcctx->kinv != NULL
|
||||
|| srcctx->r != NULL
|
||||
|| (dstctx = OPENSSL_memdup(srcctx, sizeof(*srcctx))) == NULL)
|
||||
return NULL;
|
||||
|
||||
dstctx = OPENSSL_zalloc(sizeof(*srcctx));
|
||||
if (dstctx == NULL)
|
||||
return NULL;
|
||||
|
||||
*dstctx = *srcctx;
|
||||
dstctx->ec = NULL;
|
||||
dstctx->propq = NULL;
|
||||
dstctx->md = NULL;
|
||||
dstctx->mdctx = NULL;
|
||||
dstctx->sig = NULL;
|
||||
|
||||
if (srcctx->ec != NULL && !EC_KEY_up_ref(srcctx->ec))
|
||||
goto err;
|
||||
/* Test KATS should not need to be supported */
|
||||
if (srcctx->kinv != NULL || srcctx->r != NULL)
|
||||
goto err;
|
||||
dstctx->ec = srcctx->ec;
|
||||
|
||||
if (srcctx->md != NULL && !EVP_MD_up_ref(srcctx->md))
|
||||
goto err;
|
||||
dstctx->md = srcctx->md;
|
||||
|
||||
if (srcctx->mdctx != NULL) {
|
||||
dstctx->mdctx = EVP_MD_CTX_new();
|
||||
if (dstctx->mdctx == NULL
|
||||
|| !EVP_MD_CTX_copy_ex(dstctx->mdctx, srcctx->mdctx))
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (srcctx->propq != NULL) {
|
||||
dstctx->propq = OPENSSL_strdup(srcctx->propq);
|
||||
if (dstctx->propq == NULL)
|
||||
goto err;
|
||||
}
|
||||
if (srcctx->mdctx != NULL
|
||||
&& ((dstctx->mdctx = EVP_MD_CTX_new()) == NULL
|
||||
|| !EVP_MD_CTX_copy_ex(dstctx->mdctx, srcctx->mdctx)))
|
||||
goto err;
|
||||
if (srcctx->propq != NULL
|
||||
&& (dstctx->propq = OPENSSL_strdup(srcctx->propq)) == NULL)
|
||||
goto err;
|
||||
if (srcctx->sig != NULL
|
||||
&& (dstctx->sig = OPENSSL_memdup(srcctx->sig, srcctx->siglen)) == NULL)
|
||||
goto err;
|
||||
|
||||
return dstctx;
|
||||
err:
|
||||
@@ -990,6 +987,12 @@ static int ecdsa_sigalg_set_ctx_params(void *vctx, const OSSL_PARAM params[])
|
||||
if (!OSSL_PARAM_get_octet_string(p, (void **)&ctx->sig,
|
||||
0, &ctx->siglen))
|
||||
return 0;
|
||||
/* The signature must not be empty */
|
||||
if (ctx->siglen == 0) {
|
||||
OPENSSL_free(ctx->sig);
|
||||
ctx->sig = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -214,6 +214,12 @@ static int sm2sig_digest_signverify_init(void *vpsm2ctx, const char *mdname,
|
||||
int ret = 0;
|
||||
unsigned char *aid = NULL;
|
||||
|
||||
/*
|
||||
* Each EVP_Digest{Sign,Verify}Init_ex(3) starts with fresh content, that
|
||||
* needs to recompute the "Z" digest.
|
||||
*/
|
||||
ctx->flag_compute_z_digest = 1;
|
||||
|
||||
if (!sm2sig_signature_init(vpsm2ctx, ec, params)
|
||||
|| !sm2sig_set_mdname(ctx, mdname))
|
||||
return ret;
|
||||
@@ -247,8 +253,6 @@ static int sm2sig_digest_signverify_init(void *vpsm2ctx, const char *mdname,
|
||||
if (!EVP_DigestInit_ex2(ctx->mdctx, ctx->md, params))
|
||||
goto error;
|
||||
|
||||
ctx->flag_compute_z_digest = 1;
|
||||
|
||||
ret = 1;
|
||||
|
||||
error:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -104,6 +104,8 @@ struct file_ctx_st {
|
||||
|
||||
/* Expected object type. May be unspecified */
|
||||
int expected_type;
|
||||
/* Fatal error occurred. We should indicate EOF. */
|
||||
int fatal_error;
|
||||
};
|
||||
|
||||
static void free_file_ctx(struct file_ctx_st *ctx)
|
||||
@@ -559,8 +561,10 @@ static int file_load_file(struct file_ctx_st *ctx,
|
||||
|
||||
/* Setup the decoders (one time shot per session */
|
||||
|
||||
if (!file_setup_decoders(ctx))
|
||||
if (!file_setup_decoders(ctx)) {
|
||||
ctx->fatal_error = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Setup for this object */
|
||||
|
||||
@@ -758,6 +762,9 @@ static int file_eof(void *loaderctx)
|
||||
{
|
||||
struct file_ctx_st *ctx = loaderctx;
|
||||
|
||||
if (ctx->fatal_error)
|
||||
return 1;
|
||||
|
||||
switch (ctx->type) {
|
||||
case IS_DIR:
|
||||
return ctx->_.dir.end_reached;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2022-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -272,8 +272,10 @@ static int winstore_load_using(struct winstore_ctx_st *ctx,
|
||||
const unsigned char *der_ = der;
|
||||
size_t der_len_ = der_len;
|
||||
|
||||
if (setup_decoder(ctx) == 0)
|
||||
if (setup_decoder(ctx) == 0) {
|
||||
ctx->state = STATE_EOF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
data.object_cb = object_cb;
|
||||
data.object_cbarg = object_cbarg;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2022-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -620,6 +620,11 @@ int tls_get_more_records(OSSL_RECORD_LAYER *rl)
|
||||
|
||||
thisrr->length = sslv2len & 0x7fff;
|
||||
|
||||
if (!rl->funcs->validate_record_header(rl, thisrr)) {
|
||||
/* RLAYERfatal already called */
|
||||
return OSSL_RECORD_RETURN_FATAL;
|
||||
}
|
||||
|
||||
if (thisrr->length > TLS_BUFFER_get_len(rbuf)
|
||||
- SSL2_RT_HEADER_LENGTH) {
|
||||
RLAYERfatal(rl, SSL_AD_RECORD_OVERFLOW,
|
||||
@@ -656,6 +661,11 @@ int tls_get_more_records(OSSL_RECORD_LAYER *rl)
|
||||
if (rl->msg_callback != NULL)
|
||||
rl->msg_callback(0, version, SSL3_RT_HEADER, p, 5, rl->cbarg);
|
||||
|
||||
if (!rl->funcs->validate_record_header(rl, thisrr)) {
|
||||
/* RLAYERfatal already called */
|
||||
return OSSL_RECORD_RETURN_FATAL;
|
||||
}
|
||||
|
||||
if (thisrr->length > TLS_BUFFER_get_len(rbuf) - SSL3_RT_HEADER_LENGTH) {
|
||||
RLAYERfatal(rl, SSL_AD_RECORD_OVERFLOW,
|
||||
SSL_R_PACKET_LENGTH_TOO_LONG);
|
||||
@@ -663,11 +673,6 @@ int tls_get_more_records(OSSL_RECORD_LAYER *rl)
|
||||
}
|
||||
}
|
||||
|
||||
if (!rl->funcs->validate_record_header(rl, thisrr)) {
|
||||
/* RLAYERfatal already called */
|
||||
return OSSL_RECORD_RETURN_FATAL;
|
||||
}
|
||||
|
||||
/* now rl->rstate == SSL_ST_READ_BODY */
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
@@ -4322,7 +4322,7 @@ long ssl3_callback_ctrl(SSL *s, int cmd, void (*fp)(void))
|
||||
switch (cmd) {
|
||||
#if !defined(OPENSSL_NO_DEPRECATED_3_0)
|
||||
case SSL_CTRL_SET_TMP_DH_CB:
|
||||
sc->cert->dh_tmp_cb = (DH * (*)(SSL *, int, int)) fp;
|
||||
sc->cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp;
|
||||
ret = 1;
|
||||
break;
|
||||
#endif
|
||||
@@ -4593,7 +4593,7 @@ long ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp)(void))
|
||||
switch (cmd) {
|
||||
#if !defined(OPENSSL_NO_DEPRECATED_3_0)
|
||||
case SSL_CTRL_SET_TMP_DH_CB: {
|
||||
ctx->cert->dh_tmp_cb = (DH * (*)(SSL *, int, int)) fp;
|
||||
ctx->cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp;
|
||||
} break;
|
||||
#endif
|
||||
case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2026 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2005 Nokia. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
@@ -81,7 +81,7 @@ ASN1_SEQUENCE(SSL_SESSION_ASN1) = {
|
||||
ASN1_EXP_OPT(SSL_SESSION_ASN1, peer_rpk, ASN1_OCTET_STRING, 20)
|
||||
} static_ASN1_SEQUENCE_END(SSL_SESSION_ASN1)
|
||||
|
||||
IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(SSL_SESSION_ASN1)
|
||||
IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(SSL_SESSION_ASN1)
|
||||
|
||||
/* Utility functions for i2d_SSL_SESSION */
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user