Sha256: f699639a19d78a721ac7d304b7eb47cf53b12c77245b265f2523a58280325a0c

Contents?: true

Size: 493 Bytes

Versions: 7

Compression:

Stored size: 493 Bytes

Contents

module Net::BER::Extensions::Bignum
  ##
  # Converts a Bignum to an uncompressed BER integer.
  def to_ber
    result = []

    # NOTE: Array#pack's 'w' is a BER _compressed_ integer. We need
    # uncompressed BER integers, so we're not using that. See also:
    # http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/228864
    n = self
    while n > 0
      b = n & 0xff
      result << b
      n = n >> 8
    end

    "\002" + ([result.size] + result.reverse).pack('C*')
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
socialcast-net-ldap-0.1.8 lib/net/ber/core_ext/bignum.rb
socialcast-net-ldap-0.1.7 lib/net/ber/core_ext/bignum.rb
socialcast-net-ldap-0.1.6 lib/net/ber/core_ext/bignum.rb
socialcast-net-ldap-0.1.5 lib/net/ber/core_ext/bignum.rb
scashin133-net-ldap-0.1.4 lib/net/ber/core_ext/bignum.rb
scashin133-net-ldap-0.1.3 lib/net/ber/core_ext/bignum.rb
scashin133-net-ldap-0.1.2 lib/net/ber/core_ext/bignum.rb