Class: Lanet::Signer
- Inherits:
-
Object
- Object
- Lanet::Signer
- Defined in:
- lib/lanet/signer.rb
Defined Under Namespace
Classes: Error
Class Method Summary collapse
-
.generate_key_pair(bits = 2048) ⇒ Hash
Generates a new RSA key pair.
-
.sign(message, private_key_pem) ⇒ String
Signs a message using the provided private key.
-
.verify(message, signature_base64, public_key_pem) ⇒ Boolean
Verifies a signature using the provided public key.
Class Method Details
.generate_key_pair(bits = 2048) ⇒ Hash
Generates a new RSA key pair
39 40 41 42 43 44 45 |
# File 'lib/lanet/signer.rb', line 39 def self.generate_key_pair(bits = 2048) key = OpenSSL::PKey::RSA.new(bits) { private_key: key.to_pem, public_key: key.public_key.to_pem } end |
.sign(message, private_key_pem) ⇒ String
Signs a message using the provided private key
15 16 17 18 19 20 21 |
# File 'lib/lanet/signer.rb', line 15 def self.sign(, private_key_pem) private_key = OpenSSL::PKey::RSA.new(private_key_pem) signature = private_key.sign(OpenSSL::Digest.new("SHA256"), .to_s) Base64.strict_encode64(signature) rescue StandardError => e raise Error, "Signing failed: #{e.}" end |
.verify(message, signature_base64, public_key_pem) ⇒ Boolean
Verifies a signature using the provided public key
28 29 30 31 32 33 34 |
# File 'lib/lanet/signer.rb', line 28 def self.verify(, signature_base64, public_key_pem) public_key = OpenSSL::PKey::RSA.new(public_key_pem) signature = Base64.strict_decode64(signature_base64) public_key.verify(OpenSSL::Digest.new("SHA256"), signature, .to_s) rescue StandardError => e raise Error, "Verification failed: #{e.}" end |