module Whirlpool
Constants
- VERSION
Attributes
instance[RW]
Public Class Methods
digest(str)
click to toggle source
# File lib/whirlpool.rb, line 13 def self.digest(str) subject = str.to_s.bytes length_of_subject = subject.size input_pointer = instance.exports.allocate length_of_subject memory = instance.memory.uint8_view input_pointer length_of_subject.times do |nth| memory[nth] = subject[nth] end memory[length_of_subject] = 0 output_pointer = instance.exports.whirlpool input_pointer memory = instance.memory.uint8_view output_pointer digest_result = '' length_of_output = 0 memory.each_with_index do |char, _index| break if char.zero? digest_result += char.chr length_of_output += 1 end instance.exports.deallocate(input_pointer, length_of_subject) instance.exports.deallocate(output_pointer, length_of_output) digest_result end