]>
Commit | Line | Data |
---|---|---|
2039c421 | 1 | /* |
8686c474 | 2 | * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. |
58964a49 | 3 | * |
2a7b6f39 | 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use |
2039c421 RS |
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 | |
58964a49 RE |
8 | */ |
9 | ||
b39fc560 | 10 | #include "internal/cryptlib.h" |
ec577822 BM |
11 | #include <openssl/bn.h> |
12 | #include <openssl/rsa.h> | |
58964a49 | 13 | |
29c1f061 | 14 | int RSA_padding_add_none(unsigned char *to, int tlen, |
0f113f3e MC |
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); | |
8686c474 | 19 | return 0; |
0f113f3e | 20 | } |
0c8a1281 | 21 | |
0f113f3e MC |
22 | if (flen < tlen) { |
23 | RSAerr(RSA_F_RSA_PADDING_ADD_NONE, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE); | |
8686c474 | 24 | return 0; |
0f113f3e | 25 | } |
58964a49 | 26 | |
0f113f3e | 27 | memcpy(to, from, (unsigned int)flen); |
8686c474 | 28 | return 1; |
0f113f3e | 29 | } |
58964a49 | 30 | |
0f113f3e MC |
31 | int RSA_padding_check_none(unsigned char *to, int tlen, |
32 | const unsigned char *from, int flen, int num) | |
33 | { | |
58964a49 | 34 | |
0f113f3e MC |
35 | if (flen > tlen) { |
36 | RSAerr(RSA_F_RSA_PADDING_CHECK_NONE, RSA_R_DATA_TOO_LARGE); | |
8686c474 | 37 | return -1; |
0f113f3e | 38 | } |
58964a49 | 39 | |
0f113f3e MC |
40 | memset(to, 0, tlen - flen); |
41 | memcpy(to + tlen - flen, from, flen); | |
8686c474 | 42 | return tlen; |
0f113f3e | 43 | } |