/*
* Copyright 2019-2021 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
* 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 <string.h>
#include <openssl/params.h>
#include <openssl/err.h>
#include "internal/thread_once.h"
#include "internal/numbers.h"
#include "internal/endian.h"
/* Shortcuts for raising errors that are widely used */
#define err_unsigned_negative \
ERR_raise(ERR_LIB_CRYPTO, \
CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED)
#define err_out_of_range \
ERR_raise(ERR_LIB_CRYPTO, \
CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION)
#define err_inexact \
ERR_raise(ERR_LIB_CRYPTO, \
CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY)
#define err_not_integer \
ERR_raise(ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE)
#define err_too_small \
ERR_raise(ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER)
#define err_bad_type \