summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--ext/digest/digest.c53
-rw-r--r--ext/digest/lib/digest.rb4
-rw-r--r--ext/digest/lib/digest/hmac.rb2
4 files changed, 47 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 2506a17155..b1b10908a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Wed Nov 13 19:02:05 2013 Zachary Scott <e@zzak.io>
+
+ * ext/digest/*: [DOC] Fix several typos and broken http links.
+ Improved examples for Digest overview and fixed a broken example in
+ Digest::HMAC overview. This patch also adds a description of
+ Digest::SHA256.bubblebabble to the Digest overview.
+
+ Patched by @stomar [Bug #9027]
+
Wed Nov 13 18:32:12 2013 Zachary Scott <e@zzak.io>
* ext/openssl/ossl_config.c: [DOC] Document the following:
diff --git a/ext/digest/digest.c b/ext/digest/digest.c
index 8cd8f40c85..527d0ed1fe 100644
--- a/ext/digest/digest.c
+++ b/ext/digest/digest.c
@@ -32,37 +32,58 @@ RUBY_EXTERN void Init_digest_base(void);
*
* You may want to look at OpenSSL::Digest as it supports more algorithms.
*
- * A cryptographic hash function is a procedure that takes data and return a
- * fixed bit string : the hash value, also known as _digest_. Hash functions
+ * A cryptographic hash function is a procedure that takes data and returns a
+ * fixed bit string: the hash value, also known as _digest_. Hash functions
* are also called one-way functions, it is easy to compute a digest from
* a message, but it is infeasible to generate a message from a digest.
*
- * == Example
+ * == Examples
*
* require 'digest'
*
* # Compute a complete digest
+ * Digest::SHA256.digest 'message' #=> "\xABS\n\x13\xE4Y..."
+ *
* sha256 = Digest::SHA256.new
- * digest = sha256.digest message
+ * sha256.digest 'message' #=> "\xABS\n\x13\xE4Y..."
+ *
+ * # Other encoding formats
+ * Digest::SHA256.hexdigest 'message' #=> "ab530a13e459..."
+ * Digest::SHA256.base64digest 'message' #=> "q1MKE+RZFJgr..."
*
* # Compute digest by chunks
- * sha256 = Digest::SHA256.new
- * sha256.update message1
- * sha256 << message2 # << is an alias for update
+ * md5 = Digest::MD5.new
+ * md5.update 'message1'
+ * md5 << 'message2' # << is an alias for update
+ *
+ * md5.hexdigest #=> "94af09c09bb9..."
+ *
+ * # Compute digest for a file
+ * sha256 = Digest::SHA256.file 'testfile'
+ * sha256.hexdigest
*
- * digest = sha256.digest
+ * Additionally digests can be encoded in "bubble babble" format as a sequence
+ * of consonants and vowels which is more recognizable and comparable than a
+ * hexadecimal digest.
+ *
+ * require 'digest/bubblebabble'
+ *
+ * Digest::SHA256.bubblebabble 'message' #=> "xopoh-fedac-fenyh-..."
+ *
+ * See the bubble babble specification at
+ * http://web.mit.edu/kenta/www/one/bubblebabble/spec/jrtrjwzi/draft-huima-01.txt.
*
* == Digest algorithms
*
- * Different digest algorithms (or hash functions) are available :
+ * Different digest algorithms (or hash functions) are available:
*
* HMAC::
- * See FIPS PUB 198 The Keyed-Hash Message Authentication Code (HMAC)
+ * See FIPS PUB 198 The Keyed-Hash Message Authentication Code (HMAC).
* RIPEMD-160::
- * (as Digest::RMD160) see
- * http://homes.esat.kuleuven.be/~bosselae/ripemd160.html
+ * As Digest::RMD160.
+ * See http://homes.esat.kuleuven.be/~bosselae/ripemd160.html.
* SHA1::
- * See FIPS 180 Secure Hash Standard
+ * See FIPS 180 Secure Hash Standard.
* SHA2 family::
* See FIPS 180 Secure Hash Standard which defines the following algorithms:
* * SHA512
@@ -70,11 +91,7 @@ RUBY_EXTERN void Init_digest_base(void);
* * SHA256
*
* The latest versions of the FIPS publications can be found here:
- * http://csrc.nist.gov/publications/PubsFIPS.html
- *
- * Additionally Digest::BubbleBabble encodes a digest as a sequence of
- * consonants and vowels which is more recognizable and comparable than a
- * hexadecimal digest. See http://en.wikipedia.org/wiki/Bubblebabble
+ * http://csrc.nist.gov/publications/PubsFIPS.html.
*/
static VALUE
diff --git a/ext/digest/lib/digest.rb b/ext/digest/lib/digest.rb
index 83630f45d1..5f7ebc2237 100644
--- a/ext/digest/lib/digest.rb
+++ b/ext/digest/lib/digest.rb
@@ -21,7 +21,7 @@ module Digest
end
class ::Digest::Class
- # creates a digest object and reads a given file, _name_.
+ # Creates a digest object and reads a given file, _name_.
# Optional arguments are passed to the constructor of the digest
# class.
#
@@ -40,7 +40,7 @@ module Digest
end
module Instance
- # updates the digest with the contents of a given file _name_ and
+ # Updates the digest with the contents of a given file _name_ and
# returns self.
def file(name)
File.open(name, "rb") {|f|
diff --git a/ext/digest/lib/digest/hmac.rb b/ext/digest/lib/digest/hmac.rb
index 470b0226d4..3883badc45 100644
--- a/ext/digest/lib/digest/hmac.rb
+++ b/ext/digest/lib/digest/hmac.rb
@@ -41,7 +41,7 @@ module Digest
# hmac.update(buf)
# end
#
- # puts hmac.bubblebabble
+ # puts hmac.hexdigest
#
class HMAC < Digest::Class