Sha256: c05928457d794f04f442bdbcd5205f74d8b971a5890ffd2e8268bb4fc64ca65e
Contents?: true
Size: 927 Bytes
Versions: 3
Compression:
Stored size: 927 Bytes
Contents
module Ed448 module X448 module_function X448_PRIVATE_BYTES = 56 X448_PUBLIC_BYTES = 56 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 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 end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ed448-0.1.2 | lib/ed448/x448.rb |
ed448-0.1.1 | lib/ed448/x448.rb |
ed448-0.1.0 | lib/ed448/x448.rb |