iPXE
ecb.c File Reference

Electronic codebook (ECB) More...

#include <assert.h>
#include <ipxe/crypto.h>
#include <ipxe/ecb.h>

Go to the source code of this file.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
void ecb_encrypt (void *ctx, const void *src, void *dst, size_t len, struct cipher_algorithm *raw_cipher)
 Encrypt data.
void ecb_decrypt (void *ctx, const void *src, void *dst, size_t len, struct cipher_algorithm *raw_cipher)
 Decrypt data.

Detailed Description

Electronic codebook (ECB)

Definition in file ecb.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ ecb_encrypt()

void ecb_encrypt ( void * ctx,
const void * src,
void * dst,
size_t len,
struct cipher_algorithm * raw_cipher )

Encrypt data.

Parameters
ctxContext
srcData to encrypt
dstBuffer for encrypted data
lenLength of data
raw_cipherUnderlying cipher algorithm

Definition at line 46 of file ecb.c.

47 {
48 size_t blocksize = raw_cipher->blocksize;
49
50 assert ( ( len % blocksize ) == 0 );
51
52 while ( len ) {
53 cipher_encrypt ( raw_cipher, ctx, src, dst, blocksize );
54 dst += blocksize;
55 src += blocksize;
56 len -= blocksize;
57 }
58}
struct golan_eq_context ctx
Definition CIB_PRM.h:0
static const void * src
Definition string.h:48
#define assert(condition)
Assert a condition at run-time.
Definition assert.h:50
ring len
Length.
Definition dwmac.h:226
#define cipher_encrypt(cipher, ctx, src, dst, len)
Definition crypto.h:251
size_t blocksize
Block size.
Definition crypto.h:61

References assert, cipher_algorithm::blocksize, cipher_encrypt, ctx, len, and src.

◆ ecb_decrypt()

void ecb_decrypt ( void * ctx,
const void * src,
void * dst,
size_t len,
struct cipher_algorithm * raw_cipher )

Decrypt data.

Parameters
ctxContext
srcData to decrypt
dstBuffer for decrypted data
lenLength of data
raw_cipherUnderlying cipher algorithm

Definition at line 69 of file ecb.c.

70 {
71 size_t blocksize = raw_cipher->blocksize;
72
73 assert ( ( len % blocksize ) == 0 );
74
75 while ( len ) {
76 cipher_decrypt ( raw_cipher, ctx, src, dst, blocksize );
77 dst += blocksize;
78 src += blocksize;
79 len -= blocksize;
80 }
81}
#define cipher_decrypt(cipher, ctx, src, dst, len)
Definition crypto.h:261

References assert, cipher_algorithm::blocksize, cipher_decrypt, ctx, len, and src.