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