Moved core extensions to Net::BER. Documented.
This commit is contained in:
parent
e31af4bead
commit
c913bc6fb9
17 changed files with 310 additions and 248 deletions
19
lib/net/ber/core_ext/bignum.rb
Normal file
19
lib/net/ber/core_ext/bignum.rb
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue