mirror of
https://github.com/ipxe/ipxe
synced 2025-12-27 10:02:42 +03:00
[crypto] Split crypto_algorithm into {digest,cipher,pubkey}_algorithm
The various types of cryptographic algorithm are fundamentally different, and it was probably a mistake to try to handle them via a single common type. pubkey_algorithm is a placeholder type for now.
This commit is contained in:
@@ -25,45 +25,61 @@
|
||||
#include <string.h>
|
||||
#include <gpxe/crypto.h>
|
||||
|
||||
static void null_init ( void *ctx __unused ) {
|
||||
static void digest_null_init ( void *ctx __unused ) {
|
||||
/* Do nothing */
|
||||
}
|
||||
|
||||
static int null_setkey ( void *ctx __unused, const void *key __unused,
|
||||
size_t keylen __unused ) {
|
||||
/* Do nothing */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void null_setiv ( void *ctx __unused, const void *iv __unused ) {
|
||||
static void digest_null_update ( void *ctx __unused, const void *src __unused,
|
||||
size_t len __unused ) {
|
||||
/* Do nothing */
|
||||
}
|
||||
|
||||
static void null_encode ( void *ctx __unused, const void *src,
|
||||
void *dst, size_t len ) {
|
||||
if ( dst )
|
||||
memcpy ( dst, src, len );
|
||||
}
|
||||
|
||||
static void null_decode ( void *ctx __unused, const void *src,
|
||||
void *dst, size_t len ) {
|
||||
if ( dst )
|
||||
memcpy ( dst, src, len );
|
||||
}
|
||||
|
||||
static void null_final ( void *ctx __unused, void *out __unused ) {
|
||||
static void digest_null_final ( void *ctx __unused, void *out __unused ) {
|
||||
/* Do nothing */
|
||||
}
|
||||
|
||||
struct crypto_algorithm crypto_null = {
|
||||
struct digest_algorithm digest_null = {
|
||||
.name = "null",
|
||||
.ctxsize = 0,
|
||||
.blocksize = 1,
|
||||
.digestsize = 0,
|
||||
.init = null_init,
|
||||
.setkey = null_setkey,
|
||||
.setiv = null_setiv,
|
||||
.encode = null_encode,
|
||||
.decode = null_decode,
|
||||
.final = null_final,
|
||||
.init = digest_null_init,
|
||||
.update = digest_null_update,
|
||||
.final = digest_null_final,
|
||||
};
|
||||
|
||||
static int cipher_null_setkey ( void *ctx __unused, const void *key __unused,
|
||||
size_t keylen __unused ) {
|
||||
/* Do nothing */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cipher_null_setiv ( void *ctx __unused,
|
||||
const void *iv __unused ) {
|
||||
/* Do nothing */
|
||||
}
|
||||
|
||||
static void cipher_null_encrypt ( void *ctx __unused, const void *src,
|
||||
void *dst, size_t len ) {
|
||||
memcpy ( dst, src, len );
|
||||
}
|
||||
|
||||
static void cipher_null_decrypt ( void *ctx __unused, const void *src,
|
||||
void *dst, size_t len ) {
|
||||
memcpy ( dst, src, len );
|
||||
}
|
||||
|
||||
struct cipher_algorithm cipher_null = {
|
||||
.name = "null",
|
||||
.ctxsize = 0,
|
||||
.blocksize = 1,
|
||||
.setkey = cipher_null_setkey,
|
||||
.setiv = cipher_null_setiv,
|
||||
.encrypt = cipher_null_encrypt,
|
||||
.decrypt = cipher_null_decrypt,
|
||||
};
|
||||
|
||||
struct pubkey_algorithm pubkey_null = {
|
||||
.name = "null",
|
||||
.ctxsize = 0,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user