Class: Digest::Base
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Class
|
|
Instance Chain:
|
|
Inherits: |
Digest::Class
|
Defined in: | ext/digest/digest.c, ext/digest/digest.c |
Overview
This abstract class provides a common interface to message digest implementation classes written in C.
Write a Digest subclass in C
Base
provides a common interface to message digest classes written in C. These classes must provide a struct of type rb_digest_metadata_t:
typedef int (*rb_digest_hash_init_func_t)(void *);
typedef void (*rb_digest_hash_update_func_t)(void *, unsigned char *, size_t);
typedef int (*rb_digest_hash_finish_func_t)(void *, unsigned char *);
typedef struct {
int api_version;
size_t digest_len;
size_t block_len;
size_t ctx_size;
rb_digest_hash_init_func_t init_func;
rb_digest_hash_update_func_t update_func;
rb_digest_hash_finish_func_t finish_func;
} rb_digest_metadata_t;
This structure must be set as an instance variable named metadata
(without the @ in front of the name). By example:
static const rb_digest_metadata_t sha1 = {
RUBY_DIGEST_API_VERSION,
SHA1_DIGEST_LENGTH,
SHA1_BLOCK_LENGTH,
sizeof(SHA1_CTX),
(rb_digest_hash_init_func_t)SHA1_Init,
(rb_digest_hash_update_func_t)SHA1_Update,
(rb_digest_hash_finish_func_t)SHA1_Finish,
};
rb_ivar_set(cDigest_SHA1, rb_intern("metadata"),
Data_Wrap_Struct(0, 0, 0, (void *)&sha1));
Class Method Summary
Class - Inherited
.base64digest | Returns the base64 encoded hash value of a given string. |
.digest | Returns the hash value of a given string. |
.file | Creates a digest object and reads a given file, name. |
.hexdigest | Returns the hex-encoded hash value of a given string. |
Instance Method Summary
-
#<<(string) ⇒ Base
(also: #update)
Update the digest using given string and return
self
. -
#block_length ⇒ Integer
Return the block length of the digest in bytes.
-
#digest_length ⇒ Integer
Return the length of the hash value in bytes.
-
#reset ⇒ Base
Reset the digest to its initial state and return
self
. -
#update(string) ⇒ Base
Alias for #<<.
Instance - Included
#<< | Updates the digest using a given string and returns self. |
#== | If a string is given, checks whether it is equal to the hex-encoded hash value of the digest object. |
#base64digest | If none is given, returns the resulting hash value of the digest in a base64 encoded form, keeping the digest's state. |
#base64digest! | Returns the resulting hash value and resets the digest to the initial state. |
#block_length | Returns the block length of the digest. |
#bubblebabble | Returns the resulting hash value in a Bubblebabble encoded form. |
#digest | If none is given, returns the resulting hash value of the digest, keeping the digest's state. |
#digest! | Returns the resulting hash value and resets the digest to the initial state. |
#digest_length | Returns the length of the hash value of the digest. |
#file | Updates the digest with the contents of a given file name and returns self. |
#hexdigest | If none is given, returns the resulting hash value of the digest in a hex-encoded form, keeping the digest's state. |
#hexdigest! | Returns the resulting hash value in a hex-encoded form and resets the digest to the initial state. |
#inspect | Creates a printable version of the digest object. |
#length | Returns digest_obj.digest_length(). |
#new | Returns a new, initialized copy of the digest object. |
#reset | Resets the digest to the initial state and returns self. |
#size | Alias for Instance#length. |
#to_s | Returns digest_obj.hexdigest(). |
#update | Alias for Instance#<<. |
#finish | Finishes the digest and returns the resulting hash value. |
Instance Method Details
#update(string) ⇒ Base
#<<(string) ⇒ Base
Also known as: #update
Base
#<<(string) ⇒ Base
Update the digest using given string and return self
.
#block_length ⇒ Integer
Return the block length of the digest in bytes.
#digest_length ⇒ Integer
Return the length of the hash value in bytes.
#reset ⇒ Base
Reset the digest to its initial state and return self
.
#update(string) ⇒ Base
#<<(string) ⇒ Base
Base
#<<(string) ⇒ Base
Alias for #<<.