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 #<<.