Moved core extensions to Net::BER. Documented.

This commit is contained in:
Austin Ziegler 2010-03-20 00:18:10 -04:00 committed by Kaspar Schiess
parent e31af4bead
commit c913bc6fb9
17 changed files with 310 additions and 248 deletions

View file

@ -0,0 +1,19 @@
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