1 | /* |
2 | * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. |
3 | * |
4 | * Licensed under the Apache License 2.0 (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 | |