Class: Digest::Class

Inherits:
Object
  • Object
show all
Includes:
Instance
Defined in:
digest.c,
lib/digest.rb,
digest.c

Overview

This module stands as a base class for digest implementation classes.

Direct Known Subclasses

Base, SHA2

Class Method Summary collapse

Methods included from Instance

#<<, #==, #block_length, #bubblebabble, #digest, #digest!, #digest_length, #file, #hexdigest, #hexdigest!, #inspect, #length, #new, #reset, #size, #to_s, #update

Class Method Details

.Digest::Class.bubblebabble(string, ...) ⇒ Object

Returns the BubbleBabble encoded hash value of a given string.



99
100
101
102
103
# File 'bubblebabble/bubblebabble.c', line 99

static VALUE
rb_digest_class_s_bubblebabble(int argc, VALUE *argv, VALUE klass)
{
    return bubblebabble_str_new(rb_funcall2(klass, id_digest, argc, argv));
}

.Digest::Class.digest(string, *parameters) ⇒ Object

Returns the hash value of a given string. This is equivalent to Digest::Class.new(*parameters).digest(string), where extra parameters, if any, are passed through to the constructor and the string is passed to #digest().



380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
# File 'digest.c', line 380

static VALUE
rb_digest_class_s_digest(int argc, VALUE *argv, VALUE klass)
{
    VALUE str;
    void *pctx;
    volatile VALUE obj;

    if (argc < 1) {
        rb_raise(rb_eArgError, "no data given");
    }

    str = *argv++;
    argc--;

    StringValue(str);

    obj = rb_obj_alloc(klass);
    rb_obj_call_init(obj, argc, argv);

    return rb_funcall(obj, id_digest, 1, str);
}

.file(name) ⇒ Object

creates a digest object and reads a given file, name.

p Digest::SHA256.file("X11R6.8.2-src.tar.bz2").hexdigest
# => "f02e3c85572dc9ad7cb77c2a638e3be24cc1b5bea9fdbb0b0299c9668475c534"


26
27
28
# File 'lib/digest.rb', line 26

def self.file(name)
  new.file(name)
end

.Digest::Class.hexdigest(string[, ...]) ⇒ Object

Returns the hex-encoded hash value of a given string. This is almost equivalent to Digest.hexencode(Digest::Class.new(*parameters).digest(string)).



410
411
412
413
414
# File 'digest.c', line 410

static VALUE
rb_digest_class_s_hexdigest(int argc, VALUE *argv, VALUE klass)
{
    return hexencode_str_new(rb_funcall2(klass, id_digest, argc, argv));
}