ReactOS 0.4.17-dev-736-g75e91de
bcrypt_internal.h File Reference
#include "precomp.h"
Include dependency graph for bcrypt_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  object
 
struct  algorithm
 
struct  key_symmetric
 
struct  key_asymmetric
 
struct  key
 
struct  secret
 
struct  key_symmetric_set_auth_data_params
 
struct  key_symmetric_encrypt_params
 
struct  key_symmetric_decrypt_params
 
struct  key_symmetric_get_tag_params
 
struct  key_asymmetric_decrypt_params
 
struct  key_asymmetric_encrypt_params
 
struct  key_asymmetric_duplicate_params
 
struct  key_asymmetric_sign_params
 
struct  key_asymmetric_verify_params
 
struct  key_asymmetric_export_params
 
struct  key_asymmetric_import_params
 
struct  key_asymmetric_derive_key_params
 
struct  hash< _Key >
 

Macros

#define MAGIC_DSS1   ('D' | ('S' << 8) | ('S' << 16) | ('1' << 24))
 
#define MAGIC_DSS2   ('D' | ('S' << 8) | ('S' << 16) | ('2' << 24))
 
#define MAGIC_ALG   (('A' << 24) | ('L' << 16) | ('G' << 8) | '0')
 
#define MAGIC_HASH   (('H' << 24) | ('A' << 16) | ('S' << 8) | 'H')
 
#define MAGIC_KEY   (('K' << 24) | ('E' << 16) | ('Y' << 8) | '0')
 
#define MAGIC_SECRET   (('S' << 24) | ('C' << 16) | ('R' << 8) | 'T')
 
#define BLOCK_LENGTH_RC4   1
 
#define BLOCK_LENGTH_3DES   8
 
#define BLOCK_LENGTH_AES   16
 
#define KEY_FLAG_LEGACY_DSA_V2   0x00000001
 
#define KEY_FLAG_FINALIZED   0x00000002
 
#define PRIVATE_DATA_SIZE   64
 
#define KEY_EXPORT_FLAG_PUBLIC   0x00000001
 
#define KEY_EXPORT_FLAG_RSA_FULL   0x00000002
 
#define KEY_EXPORT_FLAG_DH_PARAMETERS   0x00000004
 
#define KEY_IMPORT_FLAG_PUBLIC   0x00000001
 
#define KEY_IMPORT_FLAG_DH_PARAMETERS   0x00000002
 
#define HASH_FLAG_HMAC   0x01
 
#define HASH_FLAG_REUSABLE   0x02
 
#define ARRAY_SIZE   ARRAYSIZE
 

Enumerations

enum  alg_id {
  ALG_ID_3DES , ALG_ID_AES , ALG_ID_RC4 , ALG_ID_SHA256 ,
  ALG_ID_SHA384 , ALG_ID_SHA512 , ALG_ID_SHA1 , ALG_ID_MD5 ,
  ALG_ID_MD4 , ALG_ID_MD2 , ALG_ID_RSA , ALG_ID_DH ,
  ALG_ID_ECDH_P256 , ALG_ID_ECDH_P384 , ALG_ID_RSA_SIGN , ALG_ID_ECDSA_P256 ,
  ALG_ID_ECDSA_P384 , ALG_ID_DSA , ALG_ID_RNG , ALG_ID_PBKDF2
}
 
enum  chain_mode {
  CHAIN_MODE_CBC , CHAIN_MODE_ECB , CHAIN_MODE_CFB , CHAIN_MODE_CCM ,
  CHAIN_MODE_GCM
}
 

Functions

NTSTATUS hash_init (struct hash *hash)
 
NTSTATUS hmac_init (struct hash *hash, UCHAR *key, ULONG key_size)
 
NTSTATUS hash_update (struct hash *hash, UCHAR *input, ULONG size)
 
NTSTATUS hmac_update (struct hash *hash, UCHAR *input, ULONG size)
 
NTSTATUS hash_finish (struct hash *hash, UCHAR *output)
 
NTSTATUS hmac_finish (struct hash *hash, UCHAR *output)
 
NTSTATUS hash_get_size (struct hash *hash, ULONG *output)
 
NTSTATUS process_detach (void *args)
 
NTSTATUS process_attach (void *args)
 
NTSTATUS key_symmetric_set_auth_data (void *args)
 
NTSTATUS key_symmetric_vector_reset (void *args)
 
NTSTATUS key_symmetric_encrypt_internal (void *args)
 
NTSTATUS key_symmetric_decrypt_internal (void *args)
 
NTSTATUS key_symmetric_get_tag (void *args)
 
NTSTATUS key_symmetric_destroy (void *args)
 
NTSTATUS key_asymmetric_generate (void *args)
 
NTSTATUS key_asymmetric_export (void *args)
 
NTSTATUS key_asymmetric_import (void *args)
 
NTSTATUS key_asymmetric_verify (void *args)
 
NTSTATUS key_asymmetric_sign (void *args)
 
NTSTATUS key_asymmetric_destroy (void *args)
 
NTSTATUS key_asymmetric_duplicate (void *args)
 
NTSTATUS key_asymmetric_decrypt (void *args)
 
NTSTATUS key_asymmetric_encrypt (void *args)
 
NTSTATUS key_asymmetric_derive_key (void *args)
 

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE   ARRAYSIZE

Definition at line 309 of file bcrypt_internal.h.

◆ BLOCK_LENGTH_3DES

#define BLOCK_LENGTH_3DES   8

Definition at line 76 of file bcrypt_internal.h.

◆ BLOCK_LENGTH_AES

#define BLOCK_LENGTH_AES   16

Definition at line 77 of file bcrypt_internal.h.

◆ BLOCK_LENGTH_RC4

#define BLOCK_LENGTH_RC4   1

Definition at line 75 of file bcrypt_internal.h.

◆ HASH_FLAG_HMAC

#define HASH_FLAG_HMAC   0x01

Definition at line 243 of file bcrypt_internal.h.

◆ HASH_FLAG_REUSABLE

#define HASH_FLAG_REUSABLE   0x02

Definition at line 244 of file bcrypt_internal.h.

◆ KEY_EXPORT_FLAG_DH_PARAMETERS

#define KEY_EXPORT_FLAG_DH_PARAMETERS   0x00000004

Definition at line 211 of file bcrypt_internal.h.

◆ KEY_EXPORT_FLAG_PUBLIC

#define KEY_EXPORT_FLAG_PUBLIC   0x00000001

Definition at line 209 of file bcrypt_internal.h.

◆ KEY_EXPORT_FLAG_RSA_FULL

#define KEY_EXPORT_FLAG_RSA_FULL   0x00000002

Definition at line 210 of file bcrypt_internal.h.

◆ KEY_FLAG_FINALIZED

#define KEY_FLAG_FINALIZED   0x00000002

Definition at line 91 of file bcrypt_internal.h.

◆ KEY_FLAG_LEGACY_DSA_V2

#define KEY_FLAG_LEGACY_DSA_V2   0x00000001

Definition at line 90 of file bcrypt_internal.h.

◆ KEY_IMPORT_FLAG_DH_PARAMETERS

#define KEY_IMPORT_FLAG_DH_PARAMETERS   0x00000002

Definition at line 223 of file bcrypt_internal.h.

◆ KEY_IMPORT_FLAG_PUBLIC

#define KEY_IMPORT_FLAG_PUBLIC   0x00000001

Definition at line 222 of file bcrypt_internal.h.

◆ MAGIC_ALG

#define MAGIC_ALG   (('A' << 24) | ('L' << 16) | ('G' << 8) | '0')

Definition at line 12 of file bcrypt_internal.h.

◆ MAGIC_DSS1

#define MAGIC_DSS1   ('D' | ('S' << 8) | ('S' << 16) | ('1' << 24))

Definition at line 9 of file bcrypt_internal.h.

◆ MAGIC_DSS2

#define MAGIC_DSS2   ('D' | ('S' << 8) | ('S' << 16) | ('2' << 24))

Definition at line 10 of file bcrypt_internal.h.

◆ MAGIC_HASH

#define MAGIC_HASH   (('H' << 24) | ('A' << 16) | ('S' << 8) | 'H')

Definition at line 13 of file bcrypt_internal.h.

◆ MAGIC_KEY

#define MAGIC_KEY   (('K' << 24) | ('E' << 16) | ('Y' << 8) | '0')

Definition at line 14 of file bcrypt_internal.h.

◆ MAGIC_SECRET

#define MAGIC_SECRET   (('S' << 24) | ('C' << 16) | ('R' << 8) | 'T')

Definition at line 15 of file bcrypt_internal.h.

◆ PRIVATE_DATA_SIZE

#define PRIVATE_DATA_SIZE   64

Definition at line 100 of file bcrypt_internal.h.

Enumeration Type Documentation

◆ alg_id

Enumerator
ALG_ID_3DES 
ALG_ID_AES 
ALG_ID_RC4 
ALG_ID_SHA256 
ALG_ID_SHA384 
ALG_ID_SHA512 
ALG_ID_SHA1 
ALG_ID_MD5 
ALG_ID_MD4 
ALG_ID_MD2 
ALG_ID_RSA 
ALG_ID_DH 
ALG_ID_ECDH_P256 
ALG_ID_ECDH_P384 
ALG_ID_RSA_SIGN 
ALG_ID_ECDSA_P256 
ALG_ID_ECDSA_P384 
ALG_ID_DSA 
ALG_ID_RNG 
ALG_ID_PBKDF2 

Definition at line 21 of file bcrypt_internal.h.

22{
23 /* cipher */
27
28 /* hash */
36
37 /* asymmetric encryption */
39
40 /* secret agreement */
44
45 /* signature */
50
51 /* rng */
53
54 /* key derivation */
56};
@ ALG_ID_RSA
@ ALG_ID_DSA
@ ALG_ID_RSA_SIGN
@ ALG_ID_3DES
@ ALG_ID_ECDSA_P256
@ ALG_ID_SHA512
@ ALG_ID_PBKDF2
@ ALG_ID_ECDH_P256
@ ALG_ID_SHA384
@ ALG_ID_SHA1
@ ALG_ID_DH
@ ALG_ID_RC4
@ ALG_ID_MD2
@ ALG_ID_ECDSA_P384
@ ALG_ID_SHA256
@ ALG_ID_MD4
@ ALG_ID_ECDH_P384
@ ALG_ID_AES
@ ALG_ID_MD5
@ ALG_ID_RNG

◆ chain_mode

Enumerator
CHAIN_MODE_CBC 
CHAIN_MODE_ECB 
CHAIN_MODE_CFB 
CHAIN_MODE_CCM 
CHAIN_MODE_GCM 

Definition at line 58 of file bcrypt_internal.h.

59{
65};
@ CHAIN_MODE_ECB
@ CHAIN_MODE_CCM
@ CHAIN_MODE_CBC
@ CHAIN_MODE_GCM
@ CHAIN_MODE_CFB

Function Documentation

◆ hash_finish()

NTSTATUS hash_finish ( struct hash hash,
UCHAR output 
)

◆ hash_get_size()

NTSTATUS hash_get_size ( struct hash hash,
ULONG output 
)

◆ hash_init()

NTSTATUS hash_init ( struct hash hash)

Referenced by hash_prepare().

◆ hash_update()

NTSTATUS hash_update ( struct hash hash,
UCHAR input,
ULONG  size 
)

◆ hmac_finish()

NTSTATUS hmac_finish ( struct hash hash,
UCHAR output 
)

Referenced by hash_finalize().

◆ hmac_init()

NTSTATUS hmac_init ( struct hash hash,
UCHAR key,
ULONG  key_size 
)

Referenced by hash_prepare().

◆ hmac_update()

NTSTATUS hmac_update ( struct hash hash,
UCHAR input,
ULONG  size 
)

Referenced by hash_finalize(), and hash_prepare().

◆ key_asymmetric_decrypt()

NTSTATUS key_asymmetric_decrypt ( void args)

Referenced by BCryptDecrypt().

◆ key_asymmetric_derive_key()

NTSTATUS key_asymmetric_derive_key ( void args)

Referenced by derive_key_hash(), and derive_key_raw().

◆ key_asymmetric_destroy()

NTSTATUS key_asymmetric_destroy ( void args)

Referenced by key_destroy().

◆ key_asymmetric_duplicate()

NTSTATUS key_asymmetric_duplicate ( void args)

Referenced by key_duplicate().

◆ key_asymmetric_encrypt()

NTSTATUS key_asymmetric_encrypt ( void args)

Referenced by BCryptEncrypt().

◆ key_asymmetric_export()

NTSTATUS key_asymmetric_export ( void args)

Referenced by get_dh_property(), and key_export().

◆ key_asymmetric_generate()

NTSTATUS key_asymmetric_generate ( void args)

Referenced by BCryptFinalizeKeyPair().

◆ key_asymmetric_import()

NTSTATUS key_asymmetric_import ( void args)

◆ key_asymmetric_sign()

NTSTATUS key_asymmetric_sign ( void args)

Referenced by BCryptSignHash().

◆ key_asymmetric_verify()

NTSTATUS key_asymmetric_verify ( void args)

Referenced by BCryptVerifySignature().

◆ key_symmetric_decrypt_internal()

NTSTATUS key_symmetric_decrypt_internal ( void args)

Referenced by key_symmetric_decrypt().

◆ key_symmetric_destroy()

NTSTATUS key_symmetric_destroy ( void args)

Referenced by key_destroy().

◆ key_symmetric_encrypt_internal()

NTSTATUS key_symmetric_encrypt_internal ( void args)

Referenced by key_symmetric_encrypt().

◆ key_symmetric_get_tag()

NTSTATUS key_symmetric_get_tag ( void args)

◆ key_symmetric_set_auth_data()

NTSTATUS key_symmetric_set_auth_data ( void args)

◆ key_symmetric_vector_reset()

NTSTATUS key_symmetric_vector_reset ( void args)

◆ process_attach()

NTSTATUS process_attach ( void args)

Referenced by DllMain().

◆ process_detach()

NTSTATUS process_detach ( void args)