class ElGamal::PrivateKey
Attributes
private_a[R]
Public Class Methods
new(private_a: nil, public_p: nil)
click to toggle source
# File lib/elgamal/private_key.rb, line 7 def initialize(private_a: nil, public_p: nil) @private_a = private_a @public_p = public_p end
Public Instance Methods
decrypt(ciphertext)
click to toggle source
# File lib/elgamal/private_key.rb, line 12 def decrypt(ciphertext) raise ArgumentError unless ciphertext.instance_of? Ciphertext ciphertext[1] * (ciphertext[0].to_bn.mod_exp(@private_a, @public_p)).mod_inverse(@public_p) % @public_p end