1
# -*- coding: utf-8 -*-
2
##############################################################################
4
# OpenERP, Open Source Management Solution
5
# Copyright (C) 2011 NovaPoint Group LLC (<http://www.novapointgroup.com>)
6
# Copyright (C) 2004-2010 OpenERP SA (<http://www.openerp.com>)
8
# This program is free software: you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
10
# the Free Software Foundation, either version 3 of the License, or
11
# (at your option) any later version.
13
# This program is distributed in the hope that it will be useful,
14
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
# GNU General Public License for more details.
18
# You should have received a copy of the GNU General Public License
19
# along with this program. If not, see <http://www.gnu.org/licenses/>
21
##############################################################################
23
from Crypto.PublicKey import RSA
29
Generate a key for RSA Encryption
32
key = RSA.generate(1024)
35
def encrypt(value, key=False):
38
@params value: Value to Encrypt
39
@key: The Key used to Encrypt
40
@return:Dictionary containing the encrypted data and key
45
public_key = pub_key.publickey()
46
enc_data = public_key.encrypt(str(value), 32)
47
res['key'] = base64.encodestring(pub_key.exportKey('DER'))
49
privatekey = RSA.importKey(base64.decodestring(key))
50
enc_data = privatekey.encrypt(str(value), 32)
51
res['enc_value'] = base64.encodestring(enc_data[0])
54
def decrypt(value, key):
57
@params value: Value to Decrypt
58
@key: The Key used to Decrypt
59
@return:The decrypted data
61
privatekey = RSA.importKey(base64.decodestring(key))
62
return privatekey.decrypt(base64.decodestring(value))