-
Notifications
You must be signed in to change notification settings - Fork 0
/
Interface.py
128 lines (113 loc) · 3.03 KB
/
Interface.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
from SM2_Encryption import *
from SM2_Signature import *
from SM2_keyExchange import *
def Enc_Interface(M, PB):
M = M_to_bits(M)
C = Encryption(M, PB)
C = bits_to_M(C)
return C
def Dec_Interface(C, dB):
C = str_to_bytes(C)
C = bytes_to_bits(C)
C = C[2:len(C)]
M_ = Decryption(C, dB)
return bits_to_M(M_)
### test Enc_Interface() and Dec_Interface() ###
'''
config.default_config()
parameters = config.get_parameters()
key = key_pair_generation(parameters)
dB = key[0]
PB = key[1]
M = ['a', 's']
print('M ', M)
C = Enc_Interface(M, PB)
print('C ', C)
print('M_', Dec_Interface(C, dB))
'''
'''
def Sig_Interface(M, IDA, dA, PA):
M = M_to_bits(M)
Sig = Signature(M, IDA, dA, PA)
Sig = bytes_to_bits(Sig)
Sig = bits_to_M(Sig)
return Sig
def Ver_Interface(M, Sig, IDA, PA):
Sig = str_to_bytes(Sig)
print(Sig)
M = M_to_bits(M)
if Verification(M, Sig, IDA, PA) == False:
return False
return True
'''
def Sig_Interface(M, IDA, dA, PA):
M = M_to_bits(M)
Sig = Signature(M, IDA, dA, PA)
num = ''
for i in Sig:
i = "%03d" % i
num = num + i
Sig = str(hex(int(num)))
Sig = Sig[2:len(Sig)]
#Sig = bytes_to_bits(Sig)
#Sig = bits_to_M(Sig)
return Sig
def Ver_Interface(M, Sig, IDA, PA):
Sig = int(Sig, 16)
Sig = "%0192d" % Sig
temp = str(Sig)
Sig = []
for i in range(0, 64):
Sig.append(int(temp[i*3:(i+1)*3]))
M = M_to_bits(M)
if Verification(M, Sig, IDA, PA) == False:
return False
return True
### test Sig_Interface() and Ver_Interface() ###
'''
config.default_config()
parameters = config.get_parameters()
key = key_pair_generation(parameters)
dA = key[0]
PA = key[1]
IDA = 'ALICE123@YAHOO.COM'
M = ['a']
print('M ', M)
Sig = Sig_Interface(M, IDA, dA, PA)
print('Sig ', Sig)
Ver_Interface(M, Sig, IDA, PA)
'''
def keyEX_Interface_get_ZA_ZB(IDA, IDB, PA, PB):
return get_ZA_ZB(IDA, IDB, PA, PB)
def keyEX_Interface_1():
return key_generation_1()
def keyEX_Interface_2(ZA, ZB, r_self, R_self, R_opposite, d_self, P_self, P_opposite, klen, is_send):
return key_generation_2(ZA, ZB, r_self, R_self, R_opposite, d_self, P_self, P_opposite, klen, is_send)
def keyEX_Interface_3(S_target, S_test):
return key_generation_3(S_target, S_test)
### test keyExchange ###
'''
config.default_config()
parameters = config.get_parameters()
key = key_pair_generation(parameters)
dA = key[0]
PA = key[1]
key = key_pair_generation(parameters)
dB = key[0]
PB = key[1]
klen = 128
IDA = 'ALICE123@YAHOO.COM'
IDB = 'BILL456@YAHOO.COM'
RA, rA = keyEX_Interface_1()
RB, rB = keyEX_Interface_1()
ZA, ZB = keyEX_Interface_get_ZA_ZB(IDA, IDB, PA, PB)
kB, SB, S2 = key_generation_2(ZA, ZB, rB, RB, RA, dB, PB, PA, klen, 0)
print('kB', kB)
print('---------------------------------------------------------')
kA, SA, S1 = key_generation_2(ZA, ZB, rA, RA, RB, dA, PA, PB, klen, 1)
print('kA', kA)
#key_generation_B_1(IDA, IDB, RA, dB, PA, klen)
#key_generation_A_2(IDA, IDB, rA, RA, RB, SB, dA, PB, klen)
keyEX_Interface_3(SB, S1)
keyEX_Interface_3(SA, S2)
'''