Ruby  2.4.2p198(2017-09-14revision59899)
Macros | Functions | Variables
digest.c File Reference
#include "digest.h"
Include dependency graph for digest.c:

Go to the source code of this file.

Macros

#define RUBY_UNTYPED_DATA_WARNING   0
 

Functions

RUBY_EXTERN void Init_digest_base (void)
 
static VALUE hexencode_str_new (VALUE str_digest)
 
static VALUE rb_digest_s_hexencode (VALUE klass, VALUE str)
 
 NORETURN (static void rb_digest_instance_method_unimpl(VALUE self, const char *method))
 
static void rb_digest_instance_method_unimpl (VALUE self, const char *method)
 
static VALUE rb_digest_instance_update (VALUE self, VALUE str)
 
static VALUE rb_digest_instance_finish (VALUE self)
 
static VALUE rb_digest_instance_reset (VALUE self)
 
static VALUE rb_digest_instance_new (VALUE self)
 
static VALUE rb_digest_instance_digest (int argc, VALUE *argv, VALUE self)
 
static VALUE rb_digest_instance_digest_bang (VALUE self)
 
static VALUE rb_digest_instance_hexdigest (int argc, VALUE *argv, VALUE self)
 
static VALUE rb_digest_instance_hexdigest_bang (VALUE self)
 
static VALUE rb_digest_instance_to_s (VALUE self)
 
static VALUE rb_digest_instance_inspect (VALUE self)
 
static VALUE rb_digest_instance_equal (VALUE self, VALUE other)
 
static VALUE rb_digest_instance_digest_length (VALUE self)
 
static VALUE rb_digest_instance_length (VALUE self)
 
static VALUE rb_digest_instance_block_length (VALUE self)
 
static VALUE rb_digest_class_s_digest (int argc, VALUE *argv, VALUE klass)
 
static VALUE rb_digest_class_s_hexdigest (int argc, VALUE *argv, VALUE klass)
 
static VALUE rb_digest_class_init (VALUE self)
 
static rb_digest_metadata_tget_digest_base_metadata (VALUE klass)
 
static void algo_init (const rb_digest_metadata_t *algo, void *pctx)
 
static VALUE rb_digest_base_alloc (VALUE klass)
 
static VALUE rb_digest_base_copy (VALUE copy, VALUE obj)
 
static VALUE rb_digest_base_reset (VALUE self)
 
static VALUE rb_digest_base_update (VALUE self, VALUE str)
 
static VALUE rb_digest_base_finish (VALUE self)
 
static VALUE rb_digest_base_digest_length (VALUE self)
 
static VALUE rb_digest_base_block_length (VALUE self)
 
void Init_digest (void)
 

Variables

static VALUE rb_mDigest
 
static VALUE rb_mDigest_Instance
 
static VALUE rb_cDigest_Class
 
static VALUE rb_cDigest_Base
 
static ID id_reset
 
static ID id_update
 
static ID id_finish
 
static ID id_digest
 
static ID id_hexdigest
 
static ID id_digest_length
 
static ID id_metadata
 
static const rb_data_type_t digest_type
 

Macro Definition Documentation

◆ RUBY_UNTYPED_DATA_WARNING

#define RUBY_UNTYPED_DATA_WARNING   0

Function Documentation

◆ algo_init()

static void algo_init ( const rb_digest_metadata_t algo,
void *  pctx 
)
inlinestatic

◆ get_digest_base_metadata()

static rb_digest_metadata_t* get_digest_base_metadata ( VALUE  klass)
static

◆ hexencode_str_new()

static VALUE hexencode_str_new ( VALUE  str_digest)
static

◆ Init_digest()

void Init_digest ( void  )

◆ Init_digest_base()

RUBY_EXTERN void Init_digest_base ( void  )

◆ NORETURN()

NORETURN ( static void   rb_digest_instance_method_unimplVALUE self, const char *method)

Referenced by rb_digest_s_hexencode().

◆ rb_digest_base_alloc()

static VALUE rb_digest_base_alloc ( VALUE  klass)
static

◆ rb_digest_base_block_length()

static VALUE rb_digest_base_block_length ( VALUE  self)
static

Definition at line 719 of file digest.c.

References rb_digest_metadata_t::block_len, get_digest_base_metadata(), INT2NUM, and rb_obj_class().

Referenced by Init_digest().

◆ rb_digest_base_copy()

static VALUE rb_digest_base_copy ( VALUE  copy,
VALUE  obj 
)
static

◆ rb_digest_base_digest_length()

static VALUE rb_digest_base_digest_length ( VALUE  self)
static

Definition at line 704 of file digest.c.

References rb_digest_metadata_t::digest_len, get_digest_base_metadata(), INT2NUM, and rb_obj_class().

Referenced by Init_digest().

◆ rb_digest_base_finish()

static VALUE rb_digest_base_finish ( VALUE  self)
static

◆ rb_digest_base_reset()

static VALUE rb_digest_base_reset ( VALUE  self)
static

Definition at line 639 of file digest.c.

References algo_init(), get_digest_base_metadata(), rb_obj_class(), and TypedData_Get_Struct.

Referenced by Init_digest().

◆ rb_digest_base_update()

static VALUE rb_digest_base_update ( VALUE  self,
VALUE  str 
)
static

◆ rb_digest_class_init()

static VALUE rb_digest_class_init ( VALUE  self)
static

Definition at line 494 of file digest.c.

Referenced by Init_digest().

◆ rb_digest_class_s_digest()

static VALUE rb_digest_class_s_digest ( int  argc,
VALUE argv,
VALUE  klass 
)
static

Definition at line 458 of file digest.c.

References id_digest, rb_eArgError, rb_funcall(), rb_obj_alloc(), rb_obj_call_init(), rb_raise(), and StringValue.

Referenced by Init_digest().

◆ rb_digest_class_s_hexdigest()

static VALUE rb_digest_class_s_hexdigest ( int  argc,
VALUE argv,
VALUE  klass 
)
static

Definition at line 487 of file digest.c.

References hexencode_str_new(), id_digest, and rb_funcallv.

Referenced by Init_digest().

◆ rb_digest_instance_block_length()

static VALUE rb_digest_instance_block_length ( VALUE  self)
static

Definition at line 434 of file digest.c.

References rb_digest_instance_method_unimpl(), and UNREACHABLE.

Referenced by Init_digest().

◆ rb_digest_instance_digest()

static VALUE rb_digest_instance_digest ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ rb_digest_instance_digest_bang()

static VALUE rb_digest_instance_digest_bang ( VALUE  self)
static

Definition at line 267 of file digest.c.

References id_finish, id_reset, and rb_funcall().

Referenced by Init_digest().

◆ rb_digest_instance_digest_length()

static VALUE rb_digest_instance_digest_length ( VALUE  self)
static

Definition at line 402 of file digest.c.

References INT2NUM, rb_digest_instance_digest(), RSTRING_LEN, and StringValue.

Referenced by Init_digest().

◆ rb_digest_instance_equal()

static VALUE rb_digest_instance_equal ( VALUE  self,
VALUE  other 
)
static

◆ rb_digest_instance_finish()

static VALUE rb_digest_instance_finish ( VALUE  self)
static

Definition at line 192 of file digest.c.

References rb_digest_instance_method_unimpl(), and UNREACHABLE.

Referenced by Init_digest().

◆ rb_digest_instance_hexdigest()

static VALUE rb_digest_instance_hexdigest ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ rb_digest_instance_hexdigest_bang()

static VALUE rb_digest_instance_hexdigest_bang ( VALUE  self)
static

Definition at line 312 of file digest.c.

References hexencode_str_new(), id_finish, id_reset, and rb_funcall().

Referenced by Init_digest().

◆ rb_digest_instance_inspect()

static VALUE rb_digest_instance_inspect ( VALUE  self)
static

◆ rb_digest_instance_length()

static VALUE rb_digest_instance_length ( VALUE  self)
static

Definition at line 420 of file digest.c.

References id_digest_length, and rb_funcall().

Referenced by Init_digest().

◆ rb_digest_instance_method_unimpl()

static void rb_digest_instance_method_unimpl ( VALUE  self,
const char *  method 
)
static

◆ rb_digest_instance_new()

static VALUE rb_digest_instance_new ( VALUE  self)
static

Definition at line 223 of file digest.c.

References id_reset, rb_funcall(), and rb_obj_clone().

Referenced by Init_digest().

◆ rb_digest_instance_reset()

static VALUE rb_digest_instance_reset ( VALUE  self)
static

Definition at line 208 of file digest.c.

References rb_digest_instance_method_unimpl(), and UNREACHABLE.

Referenced by Init_digest().

◆ rb_digest_instance_to_s()

static VALUE rb_digest_instance_to_s ( VALUE  self)
static

Definition at line 327 of file digest.c.

References id_hexdigest, and rb_funcall().

Referenced by Init_digest(), and rb_digest_instance_equal().

◆ rb_digest_instance_update()

static VALUE rb_digest_instance_update ( VALUE  self,
VALUE  str 
)
static

Definition at line 172 of file digest.c.

References rb_digest_instance_method_unimpl(), and UNREACHABLE.

Referenced by Init_digest().

◆ rb_digest_s_hexencode()

static VALUE rb_digest_s_hexencode ( VALUE  klass,
VALUE  str 
)
static

Definition at line 139 of file digest.c.

References hexencode_str_new(), NORETURN(), and rb_digest_instance_method_unimpl().

Referenced by Init_digest().

Variable Documentation

◆ digest_type

const rb_data_type_t digest_type
static
Initial value:
= {
"digest",
0, 0,
}
#define RUBY_TYPED_FREE_IMMEDIATELY
Definition: ruby.h:1145
#define RUBY_TYPED_WB_PROTECTED
Definition: ruby.h:1146
#define RUBY_TYPED_DEFAULT_FREE
Definition: ruby.h:1141

Definition at line 576 of file digest.c.

◆ id_digest

ID id_digest
static

Definition at line 23 of file digest.c.

Referenced by Init_digest(), rb_digest_class_s_digest(), and rb_digest_class_s_hexdigest().

◆ id_digest_length

ID id_digest_length
static

Definition at line 23 of file digest.c.

Referenced by Init_digest(), and rb_digest_instance_length().

◆ id_finish

ID id_finish
static

◆ id_hexdigest

ID id_hexdigest
static

Definition at line 23 of file digest.c.

Referenced by Init_digest(), and rb_digest_instance_to_s().

◆ id_metadata

ID id_metadata
static

Definition at line 24 of file digest.c.

Referenced by get_digest_base_metadata(), Init_digest(), and Init_sha2().

◆ id_reset

ID id_reset
static

◆ id_update

ID id_update
static

Definition at line 23 of file digest.c.

Referenced by Init_digest(), rb_digest_instance_digest(), and rb_digest_instance_hexdigest().

◆ rb_cDigest_Base

VALUE rb_cDigest_Base
static

Definition at line 21 of file digest.c.

Referenced by Init_digest(), and rb_digest_base_alloc().

◆ rb_cDigest_Class

VALUE rb_cDigest_Class
static

Definition at line 20 of file digest.c.

Referenced by Init_bubblebabble(), and Init_digest().

◆ rb_mDigest

VALUE rb_mDigest
static

Definition at line 18 of file digest.c.

Referenced by Init_bubblebabble(), and Init_digest().

◆ rb_mDigest_Instance

VALUE rb_mDigest_Instance
static

Definition at line 19 of file digest.c.

Referenced by Init_bubblebabble(), Init_digest(), and rb_digest_instance_equal().