libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
lws-gencrypto.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lws_gencrypto_keyelem
 

Macros

#define LWS_GENCRYPTO_MAX_KEYEL_COUNT   LWS_GENCRYPTO_RSA_KEYEL_COUNT
 

Typedefs

typedef struct lws_gencrypto_keyelem lws_gc_elem_t
 

Enumerations

enum  lws_gencrypto_kty { LWS_GENCRYPTO_KTY_UNKNOWN , LWS_GENCRYPTO_KTY_OCT , LWS_GENCRYPTO_KTY_RSA , LWS_GENCRYPTO_KTY_EC }
 
enum  lws_gencrypto_oct_tok { LWS_GENCRYPTO_OCT_KEYEL_K , LWS_GENCRYPTO_OCT_KEYEL_COUNT }
 
enum  lws_gencrypto_rsa_tok {
  LWS_GENCRYPTO_RSA_KEYEL_E , LWS_GENCRYPTO_RSA_KEYEL_N , LWS_GENCRYPTO_RSA_KEYEL_D , LWS_GENCRYPTO_RSA_KEYEL_P ,
  LWS_GENCRYPTO_RSA_KEYEL_Q , LWS_GENCRYPTO_RSA_KEYEL_DP , LWS_GENCRYPTO_RSA_KEYEL_DQ , LWS_GENCRYPTO_RSA_KEYEL_QI ,
  LWS_GENCRYPTO_RSA_KEYEL_OTHER , LWS_GENCRYPTO_RSA_KEYEL_RI , LWS_GENCRYPTO_RSA_KEYEL_DI , LWS_GENCRYPTO_RSA_KEYEL_TI ,
  LWS_GENCRYPTO_RSA_KEYEL_COUNT
}
 
enum  lws_gencrypto_ec_tok {
  LWS_GENCRYPTO_EC_KEYEL_CRV , LWS_GENCRYPTO_EC_KEYEL_X , LWS_GENCRYPTO_EC_KEYEL_D = LWS_GENCRYPTO_RSA_KEYEL_D , LWS_GENCRYPTO_EC_KEYEL_Y ,
  LWS_GENCRYPTO_EC_KEYEL_COUNT
}
 
enum  lws_gencrypto_aes_tok { LWS_GENCRYPTO_AES_KEYEL_K = LWS_GENCRYPTO_OCT_KEYEL_K , LWS_GENCRYPTO_AES_KEYEL_COUNT }
 

Functions

LWS_VISIBLE LWS_EXTERN int lws_gencrypto_bits_to_bytes (int bits)
 
LWS_VISIBLE LWS_EXTERN int lws_base64_size (int bytes)
 
LWS_VISIBLE LWS_EXTERN size_t lws_gencrypto_padded_length (size_t block_size, size_t len)
 

Data Structure Documentation

◆ lws_gencrypto_keyelem

struct lws_gencrypto_keyelem

Definition at line 99 of file lws-gencrypto.h.

+ Collaboration diagram for lws_gencrypto_keyelem:
Data Fields
uint8_t * buf
uint32_t len

Macro Definition Documentation

◆ LWS_GENCRYPTO_MAX_KEYEL_COUNT

#define LWS_GENCRYPTO_MAX_KEYEL_COUNT   LWS_GENCRYPTO_RSA_KEYEL_COUNT

Definition at line 90 of file lws-gencrypto.h.

Typedef Documentation

◆ lws_gc_elem_t

Enumeration Type Documentation

◆ lws_gencrypto_kty

Enumerator
LWS_GENCRYPTO_KTY_UNKNOWN 
LWS_GENCRYPTO_KTY_OCT 
LWS_GENCRYPTO_KTY_RSA 
LWS_GENCRYPTO_KTY_EC 

Definition at line 31 of file lws-gencrypto.h.

31 {
33
37};
@ LWS_GENCRYPTO_KTY_EC
@ LWS_GENCRYPTO_KTY_RSA
@ LWS_GENCRYPTO_KTY_UNKNOWN
@ LWS_GENCRYPTO_KTY_OCT

◆ lws_gencrypto_oct_tok

Enumerator
LWS_GENCRYPTO_OCT_KEYEL_K 
LWS_GENCRYPTO_OCT_KEYEL_COUNT 

Definition at line 46 of file lws-gencrypto.h.

46 {
47 LWS_GENCRYPTO_OCT_KEYEL_K, /* note... same offset as AES K */
48
50};
@ LWS_GENCRYPTO_OCT_KEYEL_COUNT
@ LWS_GENCRYPTO_OCT_KEYEL_K

◆ lws_gencrypto_rsa_tok

Enumerator
LWS_GENCRYPTO_RSA_KEYEL_E 
LWS_GENCRYPTO_RSA_KEYEL_N 
LWS_GENCRYPTO_RSA_KEYEL_D 
LWS_GENCRYPTO_RSA_KEYEL_P 
LWS_GENCRYPTO_RSA_KEYEL_Q 
LWS_GENCRYPTO_RSA_KEYEL_DP 
LWS_GENCRYPTO_RSA_KEYEL_DQ 
LWS_GENCRYPTO_RSA_KEYEL_QI 
LWS_GENCRYPTO_RSA_KEYEL_OTHER 
LWS_GENCRYPTO_RSA_KEYEL_RI 
LWS_GENCRYPTO_RSA_KEYEL_DI 
LWS_GENCRYPTO_RSA_KEYEL_TI 
LWS_GENCRYPTO_RSA_KEYEL_COUNT 

Definition at line 52 of file lws-gencrypto.h.

52 {
55 LWS_GENCRYPTO_RSA_KEYEL_D, /* note... same offset as EC D */
61
62 /* we don't actively use these if given, but may come from COSE */
63
68
70};
@ LWS_GENCRYPTO_RSA_KEYEL_D
@ LWS_GENCRYPTO_RSA_KEYEL_DP
@ LWS_GENCRYPTO_RSA_KEYEL_QI
@ LWS_GENCRYPTO_RSA_KEYEL_COUNT
@ LWS_GENCRYPTO_RSA_KEYEL_OTHER
@ LWS_GENCRYPTO_RSA_KEYEL_RI
@ LWS_GENCRYPTO_RSA_KEYEL_TI
@ LWS_GENCRYPTO_RSA_KEYEL_E
@ LWS_GENCRYPTO_RSA_KEYEL_DQ
@ LWS_GENCRYPTO_RSA_KEYEL_N
@ LWS_GENCRYPTO_RSA_KEYEL_Q
@ LWS_GENCRYPTO_RSA_KEYEL_P
@ LWS_GENCRYPTO_RSA_KEYEL_DI

◆ lws_gencrypto_ec_tok

Enumerator
LWS_GENCRYPTO_EC_KEYEL_CRV 
LWS_GENCRYPTO_EC_KEYEL_X 
LWS_GENCRYPTO_EC_KEYEL_D 
LWS_GENCRYPTO_EC_KEYEL_Y 
LWS_GENCRYPTO_EC_KEYEL_COUNT 

Definition at line 72 of file lws-gencrypto.h.

72 {
75 /* note... same offset as RSA D */
78
80};
@ LWS_GENCRYPTO_EC_KEYEL_X
@ LWS_GENCRYPTO_EC_KEYEL_COUNT
@ LWS_GENCRYPTO_EC_KEYEL_D
@ LWS_GENCRYPTO_EC_KEYEL_CRV
@ LWS_GENCRYPTO_EC_KEYEL_Y

◆ lws_gencrypto_aes_tok

Enumerator
LWS_GENCRYPTO_AES_KEYEL_K 
LWS_GENCRYPTO_AES_KEYEL_COUNT 

Definition at line 82 of file lws-gencrypto.h.

82 {
83 /* note... same offset as OCT K */
85
87};
@ LWS_GENCRYPTO_AES_KEYEL_K
@ LWS_GENCRYPTO_AES_KEYEL_COUNT

Function Documentation

◆ lws_gencrypto_bits_to_bytes()

LWS_VISIBLE LWS_EXTERN int lws_gencrypto_bits_to_bytes ( int bits)

lws_gencrypto_bits_to_bytes() - returns rounded up bytes needed for bits

Parameters
bits

Returns the number of bytes needed to store the given number of bits. If a byte is partially used, the byte count is rounded up.

References LWS_EXTERN, and LWS_VISIBLE.

◆ lws_base64_size()

LWS_VISIBLE LWS_EXTERN int lws_base64_size ( int bytes)

lws_base64_size() - returns estimated size of base64 encoding

Parameters
bytes

Returns a slightly oversize estimate of the size of a base64 encoded version of the given amount of unencoded data.

References LWS_EXTERN, and LWS_VISIBLE.

◆ lws_gencrypto_padded_length()

LWS_VISIBLE LWS_EXTERN size_t lws_gencrypto_padded_length ( size_t block_size,
size_t len )

lws_gencrypto_padded_length() - returns PKCS#5/#7 padded length

Parameters
blocksize- blocksize to pad to
len- Length of input to pad

Returns the length of a buffer originally of size len after PKCS#5 or PKCS#7 padding has been applied to it.