|
| | XrdCryptoLite_bf32 (const char deType) |
| |
| | ~XrdCryptoLite_bf32 () |
| |
| virtual int | Decrypt (const char *key, int keyLen, const char *src, int srcLen, char *dst, int dstLen) |
| |
| virtual int | Encrypt (const char *key, int keyLen, const char *src, int srcLen, char *dst, int dstLen) |
| |
| | XrdCryptoLite (char deType, int ovhd=8) |
| |
| virtual | ~XrdCryptoLite () |
| |
| virtual int | Overhead () |
| |
| virtual char | Type () |
| |
Definition at line 54 of file XrdCryptoLite_bf32.cc.
◆ XrdCryptoLite_bf32()
| XrdCryptoLite_bf32::XrdCryptoLite_bf32 |
( |
const char |
deType | ) |
|
|
inline |
◆ ~XrdCryptoLite_bf32()
| XrdCryptoLite_bf32::~XrdCryptoLite_bf32 |
( |
| ) |
|
|
inline |
◆ Decrypt()
| int XrdCryptoLite_bf32::Decrypt |
( |
const char * |
key, |
|
|
int |
keyLen, |
|
|
const char * |
src, |
|
|
int |
srcLen, |
|
|
char * |
dst, |
|
|
int |
dstLen |
|
) |
| |
|
virtual |
Implements XrdCryptoLite.
Definition at line 80 of file XrdCryptoLite_bf32.cc.
87 unsigned char ivec[8] = {0,0,0,0,0,0,0,0};
90 int dLen = srcLen -
sizeof(crc32);
94 if (dstLen <= (
int)
sizeof(crc32) || dstLen < srcLen)
return -EINVAL;
98 EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
99 EVP_DecryptInit_ex(ctx, EVP_bf_cfb64(), NULL, NULL, NULL);
100 EVP_CIPHER_CTX_set_padding(ctx, 0);
101 EVP_CIPHER_CTX_set_key_length(ctx, keyLen);
102 EVP_DecryptInit_ex(ctx, NULL, NULL, (
unsigned char *)key, ivec);
103 EVP_DecryptUpdate(ctx, (
unsigned char *)dst, &wLen,
104 (
unsigned char *)src, srcLen);
105 EVP_DecryptFinal_ex(ctx, (
unsigned char *)dst, &wLen);
106 EVP_CIPHER_CTX_free(ctx);
110 memcpy(&crc32, dst+dLen,
sizeof(crc32));
111 crc32 = ntohl(crc32);
static uint32_t CRC32(const unsigned char *data, int count)
References XrdOucCRC::CRC32().
◆ Encrypt()
| int XrdCryptoLite_bf32::Encrypt |
( |
const char * |
key, |
|
|
int |
keyLen, |
|
|
const char * |
src, |
|
|
int |
srcLen, |
|
|
char * |
dst, |
|
|
int |
dstLen |
|
) |
| |
|
virtual |
Implements XrdCryptoLite.
Definition at line 124 of file XrdCryptoLite_bf32.cc.
131 unsigned char buff[4096], *bP, *mP = 0, ivec[8] = {0,0,0,0,0,0,0,0};
134 int dLen = srcLen +
sizeof(crc32);
138 if (dstLen-srcLen < (
int)
sizeof(crc32) || srcLen <= 0)
return -EINVAL;
142 if (dLen <= (
int)
sizeof(buff)) bP = buff;
143 else {
if (!(mP = (
unsigned char *)malloc(dLen)))
return -ENOMEM;
149 memcpy(bP, src, srcLen);
151 crc32 = htonl(crc32);
152 memcpy((bP+srcLen), &crc32,
sizeof(crc32));
156 EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
157 EVP_EncryptInit_ex(ctx, EVP_bf_cfb64(), NULL, NULL, NULL);
158 EVP_CIPHER_CTX_set_padding(ctx, 0);
159 EVP_CIPHER_CTX_set_key_length(ctx, keyLen);
160 EVP_EncryptInit_ex(ctx, NULL, NULL, (
unsigned char *)key, ivec);
161 EVP_EncryptUpdate(ctx, (
unsigned char *)dst, &wLen, bP, dLen);
162 EVP_EncryptFinal_ex(ctx, (
unsigned char *)dst, &wLen);
163 EVP_CIPHER_CTX_free(ctx);
References XrdOucCRC::CRC32().
The documentation for this class was generated from the following file: