Module: PqcRails::BlobPacking
- Defined in:
- lib/pqc_rails/blob_packing.rb
Overview
2つのバイト列を [4byte長][本体][4byte長][本体] で1本のバイト列にまとめる、その逆を行う。 HybridKemの鍵/ciphertextパック(古典+PQ)と、KeyManagerの鍵シリアライズ(公開鍵+秘密鍵)で 同じ処理が必要になるため共通化している。
Class Method Summary collapse
Class Method Details
.pack(first, second) ⇒ Object
10 11 12 |
# File 'lib/pqc_rails/blob_packing.rb', line 10 def pack(first, second) [first.bytesize].pack("N") + first + [second.bytesize].pack("N") + second end |
.unpack(blob) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/pqc_rails/blob_packing.rb', line 14 def unpack(blob) first_length = blob[0, 4].unpack1("N") first = blob[4, first_length] second_offset = 4 + first_length second_length = blob[second_offset, 4].unpack1("N") second = blob[(second_offset + 4), second_length] [first, second] end |