1 /* 2 * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 #include "internal/cryptlib.h" 11 #include <openssl/bn.h> 12 #include <openssl/rsa.h> 13 14 int RSA_padding_add_none(unsigned char *to, int tlen, 15 const unsigned char *from, int flen) 16 { 17 if (flen > tlen) { 18 RSAerr(RSA_F_RSA_PADDING_ADD_NONE, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); 19 return 0; 20 } 21 22 if (flen < tlen) { 23 RSAerr(RSA_F_RSA_PADDING_ADD_NONE, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE); 24 return 0; 25 } 26 27 memcpy(to, from, (unsigned int)flen); 28 return 1; 29 } 30 31 int RSA_padding_check_none(unsigned char *to, int tlen, 32 const unsigned char *from, int flen, int num) 33 { 34 35 if (flen > tlen) { 36 RSAerr(RSA_F_RSA_PADDING_CHECK_NONE, RSA_R_DATA_TOO_LARGE); 37 return -1; 38 } 39 40 memset(to, 0, tlen - flen); 41 memcpy(to + tlen - flen, from, flen); 42 return tlen; 43 } 44