Class: PagesCore::DigestVerifier
- Inherits:
-
Object
- Object
- PagesCore::DigestVerifier
- Defined in:
- lib/pages_core/digest_verifier.rb
Overview
Digest Verifier
Usage
verifier = PagesCore::DigestVerifier.new("super secret!")
digest = verifier.generate("foo")
digest.verify("foo", digest)
# => true
digest.verify("bar", digest)
# => raises PagesCore::Errors::InvalidSignature
Credit where credit is due: adapted and simplified from ActiveSupport::MessageVerifier
, since we don’t need to handle arbitrary data structures and ship the serialized data to the client.
Defined Under Namespace
Classes: InvalidSignatureError
Instance Method Summary collapse
-
#generate(data) ⇒ Object
Generates a digest for a string.
-
#initialize(secret, options = {}) ⇒ DigestVerifier
constructor
A new instance of DigestVerifier.
-
#verify(data, digest) ⇒ Object
Verifies that
digest
is valid fordata
.
Constructor Details
#initialize(secret, options = {}) ⇒ DigestVerifier
Returns a new instance of DigestVerifier.
23 24 25 26 |
# File 'lib/pages_core/digest_verifier.rb', line 23 def initialize(secret, = {}) @secret = secret @digest = [:digest] || "SHA1" end |
Instance Method Details
#generate(data) ⇒ Object
Generates a digest for a string.
29 30 31 |
# File 'lib/pages_core/digest_verifier.rb', line 29 def generate(data) generate_digest(data) end |
#verify(data, digest) ⇒ Object
Verifies that digest
is valid for data
. Raises a PagesCore::DigestVerifier::InvalidSignatureError
error if not.
35 36 37 38 39 40 41 |
# File 'lib/pages_core/digest_verifier.rb', line 35 def verify(data, digest) unless valid_digest?(data, digest) raise PagesCore::DigestVerifier::InvalidSignatureError end true end |