Sha256: 2588e9e82e7ba5768a20788b14307bb5101b1756d4a1dff99321fdebcd92cfaa
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true require "java" require "ed25519_java" module Ed25519 module Provider # Binding between the JRuby extension and the Ed25519::Provider API # # TODO: implement the Ed25519::Provider API natively in the Java extension module JRuby module_function def create_keypair(seed) raise ArgumentError, "seed must be #{KEY_SIZE}-bytes long" unless seed.length == Ed25519::KEY_SIZE verify_key = org.cryptosphere.ed25519.publickey(seed.to_java_bytes) verify_key = String.from_java_bytes(verify_key) seed + verify_key end def sign(signing_key, message) verify_key = signing_key[32, 32].to_java_bytes signing_key = signing_key[0, 32].to_java_bytes signature = org.cryptosphere.ed25519.signature(message.to_java_bytes, signing_key, verify_key) String.from_java_bytes(signature) end def verify(verify_key, signature, message) org.cryptosphere.ed25519.checkvalid( signature.to_java_bytes, message.to_java_bytes, verify_key.to_java_bytes ) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ed25519-1.0.0-jruby | lib/ed25519/provider/jruby.rb |
ed25519-1.0.0 | lib/ed25519/provider/jruby.rb |