Class: Moxml::Signature::Algorithms::DigestBase
- Inherits:
-
Object
- Object
- Moxml::Signature::Algorithms::DigestBase
show all
- Defined in:
- lib/moxml/signature/algorithms/digest_base.rb
Overview
Base class for message digest algorithms (SHA family).
Subclasses MUST declare:
- `identifier "http://..."` to register
- either `digest_bits N` and `openssl_digest_name "SHA256"` etc.,
OR override `#compute_digest`.
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Class Attribute Details
.digest_size_bits ⇒ Object
Returns the value of attribute digest_size_bits.
17
18
19
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 17
def digest_size_bits
@digest_size_bits
end
|
.identifier_uri ⇒ Object
Returns the value of attribute identifier_uri.
17
18
19
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 17
def identifier_uri
@identifier_uri
end
|
Class Method Details
.digest_bits(bits) ⇒ Object
24
25
26
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 24
def digest_bits(bits)
@digest_size_bits = bits
end
|
.identifier(uri) ⇒ Object
19
20
21
22
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 19
def identifier(uri)
@identifier_uri = uri
Algorithms.register(:digest, uri, self)
end
|
.openssl_digest_name(name) ⇒ Object
28
29
30
31
32
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 28
def openssl_digest_name(name)
define_method(:compute_digest) do |data|
OpenSSL::Digest.digest(name, data)
end
end
|
Instance Method Details
#compute_digest(_data) ⇒ Object
43
44
45
46
47
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 43
def compute_digest(_data)
raise NotImplementedError,
"#{self.class} must implement #compute_digest " \
"or declare openssl_digest_name"
end
|
#digest(data) ⇒ Object
35
36
37
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 35
def digest(data)
compute_digest(data.to_s)
end
|
#digest_base64(data) ⇒ Object
39
40
41
|
# File 'lib/moxml/signature/algorithms/digest_base.rb', line 39
def digest_base64(data)
Base64.strict_encode64(digest(data))
end
|