diff options
Diffstat (limited to 'src/crypto')
| -rw-r--r-- | src/crypto/axtls_aes.c | 1 | ||||
| -rw-r--r-- | src/crypto/cipher.c | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/crypto/axtls_aes.c b/src/crypto/axtls_aes.c index a587c5cb7..ac7e921d0 100644 --- a/src/crypto/axtls_aes.c +++ b/src/crypto/axtls_aes.c @@ -1,5 +1,6 @@ #include "crypto/axtls/crypto.h" #include <string.h> +#include <errno.h> #include <gpxe/crypto.h> #include <gpxe/aes.h> diff --git a/src/crypto/cipher.c b/src/crypto/cipher.c new file mode 100644 index 000000000..9c392009a --- /dev/null +++ b/src/crypto/cipher.c @@ -0,0 +1,24 @@ +#include <stdint.h> +#include <errno.h> +#include <gpxe/crypto.h> + +int cipher_encrypt ( struct crypto_algorithm *crypto, + void *ctx, const void *src, void *dst, + size_t len ) { + if ( ( len & ( crypto->blocksize - 1 ) ) ) { + return -EINVAL; + } + crypto->encode ( ctx, src, dst, len ); + return 0; +} + +int cipher_decrypt ( struct crypto_algorithm *crypto, + void *ctx, const void *src, void *dst, + size_t len ) { + if ( ( len & ( crypto->blocksize - 1 ) ) ) { + return -EINVAL; + } + crypto->decode ( ctx, src, dst, len ); + return 0; +} + |
