iPXE
Functions
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. More...
 
void ecb_decrypt (void *ctx, const void *src, void *dst, size_t len, struct cipher_algorithm *raw_cipher)
 Decrypt data. More...
 

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 }
size_t blocksize
Block size.
Definition: crypto.h:61
struct golan_eq_context ctx
Definition: CIB_PRM.h:28
#define cipher_encrypt(cipher, ctx, src, dst, len)
Definition: crypto.h:251
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
static const void * src
Definition: string.h:48
ring len
Length.
Definition: dwmac.h:231

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 }
size_t blocksize
Block size.
Definition: crypto.h:61
struct golan_eq_context ctx
Definition: CIB_PRM.h:28
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
static const void * src
Definition: string.h:48
ring len
Length.
Definition: dwmac.h:231
#define cipher_decrypt(cipher, ctx, src, dst, len)
Definition: crypto.h:261

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