module PathgraphEncoding

@author Israel Buitron

Constants

MIN_Q_N

Minimum hypercube degree

VERSION

Pathgraph encoding library version

Public Class Methods

pack(k, m, set) click to toggle source
# File lib/pathgraph_encoding.rb, line 7
def self.pack(k, m, set)
  OpenSSL::ASN1::Sequence.new([
    OpenSSL::ASN1::Integer.new(k),
    OpenSSL::ASN1::Integer.new(m),
    OpenSSL::ASN1::Sequence.new(
      set.map { |path| 
        OpenSSL::ASN1::Sequence.new(
          path.map { |x| OpenSSL::ASN1::Integer.new(x) }
        )
      }
    )
  ]).to_der
end
unpack(der) click to toggle source
# File lib/pathgraph_encoding.rb, line 21
def self.unpack(der)
  asn1 = OpenSSL::ASN1.decode(der)
  [
    OpenSSL::ASN1.decode(asn1.value[0]).value.to_i, # k
    OpenSSL::ASN1.decode(asn1.value[1]).value.to_i, # m
    OpenSSL::ASN1.decode(asn1.value[2]).value.map { |e| e.map { |d| d.value.to_i } }
  ]
end