diff --git a/lib/openssl/signature_algorithm/eddsa.rb b/lib/openssl/signature_algorithm/eddsa.rb index 88a755c..a32dc65 100644 --- a/lib/openssl/signature_algorithm/eddsa.rb +++ b/lib/openssl/signature_algorithm/eddsa.rb @@ -34,6 +34,10 @@ def generate_signing_key @signing_key = SigningKey.generate end + def compatible_verify_key?(key) + key.is_a?(::Ed25519::VerifyKey) + end + def sign(data) signing_key.sign(data) end diff --git a/lib/openssl/signature_algorithm/rsa.rb b/lib/openssl/signature_algorithm/rsa.rb index b1cdcd4..5098670 100644 --- a/lib/openssl/signature_algorithm/rsa.rb +++ b/lib/openssl/signature_algorithm/rsa.rb @@ -44,6 +44,10 @@ def initialize(hash_function: self.class::ACCEPTED_HASH_FUNCTIONS.first) end end + def compatible_verify_key?(key) + super && key.respond_to?(:n) && key.respond_to?(:e) + end + def generate_signing_key(size: DEFAULT_KEY_SIZE) @signing_key = SigningKey.new(size) end