module Crypto::Sign::Ed25519
Constants
- PRIMITIVE
- PUBLICKEYBYTES
- SECRETKEYBYTES
- SEEDBYTES
Public Class Methods
crypto_sign_ed25519_primitive()
click to toggle source
# File lib/crypto/sign/ed25519.rb, line 16 def crypto_sign_ed25519_primitive PRIMITIVE end
Also aliased as: primitive
Public Instance Methods
pk_to_curve25519(public_key)
click to toggle source
# File lib/crypto/sign/ed25519.rb, line 39 def pk_to_curve25519(public_key) check_length(public_key, PUBLICKEYBYTES, :PublicKey) curve25519_pk = zeros(ScalarMult::BYTES) crypto_sign_ed25519_pk_to_curve25519(curve25519_pk, public_key) curve25519_pk end
sk_to_curve25519(secret_key)
click to toggle source
# File lib/crypto/sign/ed25519.rb, line 48 def sk_to_curve25519(secret_key) check_length(secret_key, SECRETKEYBYTES, :SecretKey) curve25519_sk = Sodium::SecretBuffer.new(ScalarMult::BYTES) secret_key.readonly if secret_key.is_a?(Sodium::SecretBuffer) crypto_sign_ed25519_sk_to_curve25519(curve25519_sk, secret_key) curve25519_sk.noaccess curve25519_sk ensure secret_key.noaccess if secret_key.is_a?(Sodium::SecretBuffer) end
sk_to_pk(secret_key)
click to toggle source
# File lib/crypto/sign/ed25519.rb, line 73 def sk_to_pk(secret_key) check_length(secret_key, SECRETKEYBYTES, :SecretKey) public_key = zeros(PUBLICKEYBYTES) secret_key.readonly if secret_key.is_a?(Sodium::SecretBuffer) crypto_sign_ed25519_sk_to_pk(seed, secret_key) public_key ensure secret_key.noaccess if secret_key.is_a?(Sodium::SecretBuffer) end
sk_to_seed(secret_key)
click to toggle source
# File lib/crypto/sign/ed25519.rb, line 61 def sk_to_seed(secret_key) check_length(secret_key, SECRETKEYBYTES, :SecretKey) seed = zeros(SEEDBYTES) secret_key.readonly if secret_key.is_a?(Sodium::SecretBuffer) crypto_sign_ed25519_sk_to_seed(seed, secret_key) seed ensure secret_key.noaccess if secret_key.is_a?(Sodium::SecretBuffer) end