Ruby  2.1.10p492(2016-04-01revision54464)
Macros | Functions | Variables
ossl_hmac.c File Reference
#include "ossl.h"

Go to the source code of this file.

Macros

#define MakeHMAC(obj, klass, ctx)   (obj) = Data_Make_Struct((klass), HMAC_CTX, 0, ossl_hmac_free, (ctx))
 
#define GetHMAC(obj, ctx)
 
#define SafeGetHMAC(obj, ctx)
 

Functions

static void ossl_hmac_free (HMAC_CTX *ctx)
 
static VALUE ossl_hmac_alloc (VALUE klass)
 
static VALUE ossl_hmac_initialize (VALUE self, VALUE key, VALUE digest)
 
static VALUE ossl_hmac_copy (VALUE self, VALUE other)
 
static VALUE ossl_hmac_update (VALUE self, VALUE data)
 
static void hmac_final (HMAC_CTX *ctx, unsigned char **buf, unsigned int *buf_len)
 
static VALUE ossl_hmac_digest (VALUE self)
 
static VALUE ossl_hmac_hexdigest (VALUE self)
 
static VALUE ossl_hmac_reset (VALUE self)
 
static VALUE ossl_hmac_s_digest (VALUE klass, VALUE digest, VALUE key, VALUE data)
 
static VALUE ossl_hmac_s_hexdigest (VALUE klass, VALUE digest, VALUE key, VALUE data)
 
void Init_ossl_hmac ()
 

Variables

VALUE cHMAC
 
VALUE eHMACError
 

Macro Definition Documentation

◆ GetHMAC

#define GetHMAC (   obj,
  ctx 
)
Value:
do { \
Data_Get_Struct((obj), HMAC_CTX, (ctx)); \
if (!(ctx)) { \
ossl_raise(rb_eRuntimeError, "HMAC wasn't initialized"); \
} \
} while (0)
VALUE rb_eRuntimeError
Definition: error.c:547

Definition at line 17 of file ossl_hmac.c.

Referenced by ossl_hmac_copy(), ossl_hmac_digest(), ossl_hmac_hexdigest(), ossl_hmac_initialize(), ossl_hmac_reset(), and ossl_hmac_update().

◆ MakeHMAC

#define MakeHMAC (   obj,
  klass,
  ctx 
)    (obj) = Data_Make_Struct((klass), HMAC_CTX, 0, ossl_hmac_free, (ctx))

Definition at line 15 of file ossl_hmac.c.

Referenced by ossl_hmac_alloc().

◆ SafeGetHMAC

#define SafeGetHMAC (   obj,
  ctx 
)
Value:
do { \
OSSL_Check_Kind((obj), cHMAC); \
GetHMAC((obj), (ctx)); \
} while (0)
VALUE cHMAC
Definition: ossl_hmac.c:31

Definition at line 23 of file ossl_hmac.c.

Referenced by ossl_hmac_copy().

Function Documentation

◆ hmac_final()

static void hmac_final ( HMAC_CTX *  ctx,
unsigned char **  buf,
unsigned int *  buf_len 
)
static

◆ Init_ossl_hmac()

void Init_ossl_hmac ( void  )

◆ ossl_hmac_alloc()

static VALUE ossl_hmac_alloc ( VALUE  klass)
static

Definition at line 49 of file ossl_hmac.c.

References HMAC_CTX_init(), and MakeHMAC.

Referenced by Init_ossl_hmac().

◆ ossl_hmac_copy()

static VALUE ossl_hmac_copy ( VALUE  self,
VALUE  other 
)
static

Definition at line 110 of file ossl_hmac.c.

References GetHMAC, HMAC_CTX_copy(), rb_check_frozen, and SafeGetHMAC.

Referenced by Init_ossl_hmac().

◆ ossl_hmac_digest()

static VALUE ossl_hmac_digest ( VALUE  self)
static

Definition at line 184 of file ossl_hmac.c.

References buf, GetHMAC, hmac_final(), and ossl_buf2str().

Referenced by Init_ossl_hmac().

◆ ossl_hmac_free()

static void ossl_hmac_free ( HMAC_CTX *  ctx)
static

Definition at line 42 of file ossl_hmac.c.

References HMAC_CTX_cleanup(), and ruby_xfree().

◆ ossl_hmac_hexdigest()

static VALUE ossl_hmac_hexdigest ( VALUE  self)
static

Definition at line 207 of file ossl_hmac.c.

References buf, eHMACError, GetHMAC, hmac_final(), NULL, ossl_buf2str(), ossl_raise(), and string2hex().

Referenced by Init_ossl_hmac().

◆ ossl_hmac_initialize()

static VALUE ossl_hmac_initialize ( VALUE  self,
VALUE  key,
VALUE  digest 
)
static

Definition at line 97 of file ossl_hmac.c.

References GetDigestPtr(), GetHMAC, key, RSTRING_LENINT, RSTRING_PTR, and StringValue.

Referenced by Init_ossl_hmac().

◆ ossl_hmac_reset()

static VALUE ossl_hmac_reset ( VALUE  self)
static

Definition at line 247 of file ossl_hmac.c.

References GetHMAC, and NULL.

Referenced by Init_ossl_hmac().

◆ ossl_hmac_s_digest()

static VALUE ossl_hmac_s_digest ( VALUE  klass,
VALUE  digest,
VALUE  key,
VALUE  data 
)
static

Definition at line 275 of file ossl_hmac.c.

References buf, GetDigestPtr(), key, NULL, rb_str_new(), RSTRING_LEN, RSTRING_LENINT, RSTRING_PTR, and StringValue.

Referenced by Init_ossl_hmac().

◆ ossl_hmac_s_hexdigest()

static VALUE ossl_hmac_s_hexdigest ( VALUE  klass,
VALUE  digest,
VALUE  key,
VALUE  data 
)
static

◆ ossl_hmac_update()

static VALUE ossl_hmac_update ( VALUE  self,
VALUE  data 
)
static

Definition at line 143 of file ossl_hmac.c.

References GetHMAC, RSTRING_LEN, RSTRING_PTR, and StringValue.

Referenced by Init_ossl_hmac().

Variable Documentation

◆ cHMAC

VALUE cHMAC

Definition at line 31 of file ossl_hmac.c.

Referenced by Init_ossl_hmac().

◆ eHMACError

VALUE eHMACError

Definition at line 32 of file ossl_hmac.c.

Referenced by hmac_final(), Init_ossl_hmac(), ossl_hmac_hexdigest(), and ossl_hmac_s_hexdigest().