Sha256: 5cdde6fa52704a81fb0cbbd7471555ea0cc10bfcfdafb5b768d6dd3d180abe32

Contents?: true

Size: 938 Bytes

Versions: 1

Compression:

Stored size: 938 Bytes

Contents


module Ccrypto
  class PublicKey
    attr_accessor :native_pubKey
    def initialize(pubkey)
      @native_pubKey = pubkey
    end

    def native
      @native_pubKey
    end

    private
    def logger
      Ccrypto.logger(:pubkey)
    end

    def method_missing(mtd, *args, &block)
      if @native_pubKey.nil?
        super
      else
        logger.debug "Sending to native pubKey '#{@native_pubKey}' of method '#{mtd}'"
        @native_pubKey.send(mtd, *args, &block)
      end
    end

    def respond_to_missing?(mtd, *args, &block)
      if @native_pubKey.nil?
        false
      else
        @native_pubKey.respond_to?(mtd)
      end
    end

  end # PublicKey

  class ECCPublicKey < PublicKey; end
  class RSAPublicKey < PublicKey; end
  class ED25519PublicKey < PublicKey; end
  class X25519PublicKey < PublicKey; end

  class CrystalDilithiumPublicKey < PublicKey; end
  class CrystalKyberPublicKey < PublicKey; end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ccrypto-0.2.0 lib/ccrypto/public_key.rb