Module: PQCrypto::Seal::Binary
- Defined in:
- lib/pq_crypto/seal/binary.rb
Defined Under Namespace
Classes: Reader
Constant Summary collapse
- INTEGER_TYPES =
{ u8: [1, "C", 0xff], u16: [2, "n", 0xffff], u32: [4, "N", 0xffff_ffff], u64: [8, "Q>", 0xffff_ffff_ffff_ffff] }.freeze
Class Method Summary collapse
- .ensure_available!(bytes, offset, length) ⇒ Object
- .integer!(value, max) ⇒ Object
- .read_bytes(bytes, offset, length) ⇒ Object
Class Method Details
.ensure_available!(bytes, offset, length) ⇒ Object
48 49 50 51 52 53 |
# File 'lib/pq_crypto/seal/binary.rb', line 48 def ensure_available!(bytes, offset, length) offset, length = Integer(offset), Integer(length) raise FormatError, "invalid offset" if offset.negative? || length.negative? raise FormatError, "truncated envelope" if offset > bytes.bytesize || length > bytes.bytesize - offset end |
.integer!(value, max) ⇒ Object
55 56 57 58 59 60 |
# File 'lib/pq_crypto/seal/binary.rb', line 55 def integer!(value, max) number = Integer(value) raise RangeError, "integer is out of range" if number.negative? || number > max number end |
.read_bytes(bytes, offset, length) ⇒ Object
44 45 46 |
# File 'lib/pq_crypto/seal/binary.rb', line 44 def read_bytes(bytes, offset, length) read_with(bytes, offset) { |reader| reader.bytes(length) } end |