Sha256: c9413a3d107cff663f5dd0dd2e6a0cd7223ff934acce3f4f3d71af9e40f818df

Contents?: true

Size: 565 Bytes

Versions: 18

Compression:

Stored size: 565 Bytes

Contents

# -*- ruby encoding: utf-8 -*-
##
# BER extensions to the Bignum class.
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

18 entries across 18 versions & 7 rubygems

Version Path
net-ldap-0.10.0 lib/net/ber/core_ext/bignum.rb
net-ldap-0.9.0 lib/net/ber/core_ext/bignum.rb
net-ldap-0.8.0 lib/net/ber/core_ext/bignum.rb
net-ldap-0.7.0 lib/net/ber/core_ext/bignum.rb
net-ldap-0.6.1 lib/net/ber/core_ext/bignum.rb
net-ldap-0.6.0 lib/net/ber/core_ext/bignum.rb
net-ldap-0.5.1 lib/net/ber/core_ext/bignum.rb
datacom-net-ldap-0.5.0.datacom lib/net/ber/core_ext/bignum.rb
adams-net-ldap-0.4.0 lib/net/ber/core_ext/bignum.rb
obis-net-ldap-0.4.0 lib/net/ber/core_ext/bignum.rb
net-ldap-1-0.4.0 lib/net/ber/core_ext/bignum.rb
net-ldap-0.3.1 lib/net/ber/core_ext/bignum.rb
net-ldap-0.3.0 lib/net/ber/core_ext/bignum.rb
prathe_net-ldap-0.2.20110317223538 lib/net/ber/core_ext/bignum.rb
prathe-net-ldap-0.2.20110317223538 lib/net/ber/core_ext/bignum.rb
net-ldap-0.2.2 lib/net/ber/core_ext/bignum.rb
net-ldap-0.2.1 lib/net/ber/core_ext/bignum.rb
net-ldap-0.2 lib/net/ber/core_ext/bignum.rb