Module: Ed448::X448
- Defined in:
- lib/ed448/x448.rb
Constant Summary collapse
- X448_PRIVATE_BYTES =
56- X448_PUBLIC_BYTES =
56
Class Method Summary collapse
Class Method Details
.derive_public_key(private_key) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/ed448/x448.rb', line 8 def derive_public_key(private_key) private_key = FFI::MemoryPointer.new(:uchar, X448_PRIVATE_BYTES).put_bytes(0, private_key) public_key = FFI::MemoryPointer.new(:uchar, X448_PUBLIC_BYTES) Ed448.goldilocks_x448_derive_public_key(public_key, private_key) public_key.read_string(X448_PUBLIC_BYTES) end |
.dh(public_key, private_key) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/ed448/x448.rb', line 15 def dh(public_key, private_key) private_key = FFI::MemoryPointer.new(:uchar, X448_PRIVATE_BYTES).put_bytes(0, private_key) public_key = FFI::MemoryPointer.new(:uchar, X448_PUBLIC_BYTES).put_bytes(0, public_key) shared_key = FFI::MemoryPointer.new(:uchar, X448_PUBLIC_BYTES) result = Ed448.goldilocks_x448(shared_key, public_key, private_key) raise 'goldilocks_x448 failed.' if result != -1 shared_key.read_bytes(X448_PUBLIC_BYTES) end |