Class: LolitaBankLink::Crypt

Inherits:
Object
  • Object
show all
Defined in:
lib/lolita-bank-link/crypt.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCrypt

Returns a new instance of Crypt.



5
6
7
8
9
# File 'lib/lolita-bank-link/crypt.rb', line 5

def initialize
  @private_key = read_private_key(LolitaBankLink.private_key)
  @public_key  = extract_public_key(LolitaBankLink.bank_certificate)
  @digest = OpenSSL::Digest::SHA1.new
end

Instance Attribute Details

#digestObject (readonly)

Returns the value of attribute digest.



3
4
5
# File 'lib/lolita-bank-link/crypt.rb', line 3

def digest
  @digest
end

#private_keyObject (readonly)

Returns the value of attribute private_key.



3
4
5
# File 'lib/lolita-bank-link/crypt.rb', line 3

def private_key
  @private_key
end

#public_keyObject (readonly)

Returns the value of attribute public_key.



3
4
5
# File 'lib/lolita-bank-link/crypt.rb', line 3

def public_key
  @public_key
end

Instance Method Details

#calc_mac_signature(params, service = '1002') ⇒ Object



20
21
22
23
24
# File 'lib/lolita-bank-link/crypt.rb', line 20

def calc_mac_signature(params, service = '1002')
  mac = prepair_mac_string(params,service)
  enc_mac = self.sign(mac)
  enc_mac
end

#sign(message) ⇒ Object



11
12
13
# File 'lib/lolita-bank-link/crypt.rb', line 11

def sign message
  Base64::encode64(private_key.sign(digest, message)).rstrip
end

#verify_mac_signature(params, signature) ⇒ Object



15
16
17
18
# File 'lib/lolita-bank-link/crypt.rb', line 15

def verify_mac_signature(params, signature)
  mac = prepair_mac_string(params,params[:service])
  verify(mac, signature)
end