Sha256: 6f50672c4db6149f297bca6b055a76cfc0f2b6e564892a97fc32d4c2fe0ad964

Contents?: true

Size: 645 Bytes

Versions: 7

Compression:

Stored size: 645 Bytes

Contents

# frozen_string_literal: true

require "openssl"
require "tpm/t_public"

module TPM
  TPM_TO_OPENSSL_HASH_ALG = {
    TPM::ALG_SHA1 => "SHA1",
    TPM::ALG_SHA256 => "SHA256"
  }.freeze

  class PublicArea
    attr_reader :object

    def initialize(object)
      @object = object
    end

    def name
      [name_alg].pack("n") + name_digest
    end

    def key
      t_public.key
    end

    private

    def name_digest
      OpenSSL::Digest.digest(TPM_TO_OPENSSL_HASH_ALG[name_alg], object)
    end

    def name_alg
      t_public.name_alg
    end

    def t_public
      @t_public ||= TPM::TPublic.deserialize(object)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
tpm-key_attestation-0.9.0 lib/tpm/public_area.rb
tpm-key_attestation-0.8.0 lib/tpm/public_area.rb
tpm-key_attestation-0.7.0 lib/tpm/public_area.rb
tpm-key_attestation-0.6.0 lib/tpm/public_area.rb
tpm-key_attestation-0.5.0 lib/tpm/public_area.rb
tpm-key_attestation-0.4.0 lib/tpm/public_area.rb
tpm-key_attestation-0.3.0 lib/tpm/public_area.rb