Sha256: 70d99a1c47c5918624ef88bf33812e96e2b8233e1ceb8c995aa759955beb447e

Contents?: true

Size: 932 Bytes

Versions: 9

Compression:

Stored size: 932 Bytes

Contents

module Digest
  class Base
    def initialize(algo)
      @digest = FlowDigest.digestWithAlgo(algo)
    end

    def update(str)
      @digest.update(str.to_data)
      self
    end

    def reset
      @digest.reset
      self
    end

    def digest
      data = @digest.digest
      ptr = data.bytes
      digest = ''
      data.length.times do |i|
        byte = ptr[i]
        digest << '%02x' % byte
      end
      digest
    end

    # To be called from subclasses.
    def self.digest(str)
      self.new.update(str).digest
    end
  end

  class MD5 < Base; def initialize; super('MD5'); end; end
  class SHA1 < Base; def initialize; super('SHA1'); end; end
  class SHA224 < Base; def initialize; super('SHA224'); end; end
  class SHA256 < Base; def initialize; super('SHA256'); end; end
  class SHA384 < Base; def initialize; super('SHA384'); end; end
  class SHA512 < Base; def initialize; super('SHA512'); end; end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
motion-flow-0.1.8 flow/digest/cocoa/digest.rb
motion-flow-0.1.7 flow/digest/cocoa/digest.rb
motion-flow-0.1.6 flow/digest/cocoa/digest.rb
motion-flow-0.1.5 flow/digest/cocoa/digest.rb
motion-flow-0.1.4 flow/digest/cocoa/digest.rb
motion-flow-0.1.3 flow/digest/cocoa/digest.rb
motion-flow-0.1.2 flow/digest/cocoa/digest.rb
motion-flow-0.1.1 flow/digest/cocoa/digest.rb
motion-flow-0.1 flow/digest/cocoa/digest.rb