diff options
Diffstat (limited to 'openssl-1.1.0h/crypto/rsa/rsa_none.c')
-rw-r--r-- | openssl-1.1.0h/crypto/rsa/rsa_none.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/openssl-1.1.0h/crypto/rsa/rsa_none.c b/openssl-1.1.0h/crypto/rsa/rsa_none.c new file mode 100644 index 0000000..b78756d --- /dev/null +++ b/openssl-1.1.0h/crypto/rsa/rsa_none.c @@ -0,0 +1,43 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (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 "internal/cryptlib.h" +#include <openssl/bn.h> +#include <openssl/rsa.h> + +int RSA_padding_add_none(unsigned char *to, int tlen, + const unsigned char *from, int flen) +{ + if (flen > tlen) { + RSAerr(RSA_F_RSA_PADDING_ADD_NONE, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); + return (0); + } + + if (flen < tlen) { + RSAerr(RSA_F_RSA_PADDING_ADD_NONE, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE); + return (0); + } + + memcpy(to, from, (unsigned int)flen); + return (1); +} + +int RSA_padding_check_none(unsigned char *to, int tlen, + const unsigned char *from, int flen, int num) +{ + + if (flen > tlen) { + RSAerr(RSA_F_RSA_PADDING_CHECK_NONE, RSA_R_DATA_TOO_LARGE); + return (-1); + } + + memset(to, 0, tlen - flen); + memcpy(to + tlen - flen, from, flen); + return (tlen); +} |