Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def convertValue(value):
- hexa = intToByte(value)
- hexa = byteToHex(hexa)
- if int(hexa[0],16) >= 8:
- hexa = '00' + hexa
- return hexa
- def convertShort(i, length):
- typeInt = hexToByte('02')
- l = intToByte(length//2)
- i = twos_complement(i)
- value = intToByte(i)
- return byteToHex(typeInt + l + value)
- def intToByte(integer):
- size = (integer.bit_length() + 7 ) // 8
- if integer == 0:
- size = 1
- four_bytes = integer.to_bytes(size, byteorder='big')
- return four_bytes
- def compute(p, q):
- version = 0
- e = 65537
- n = p * q
- d = e**(-1)
- ex1 = d % (p - 1) #exponent1 INTEGER, -- d mod (p-1)
- ex2 = d % (q - 1) #exponent2 INTEGER, -- d mod (q-1)
- coeff = ~q % p #coefficient INTEGER, -- (inverse of q) mod p
- v1 = convertToDER(version)
- e1 = convertToDER(e)
- n1 = convertToDER(n)
- d1 = convertToDER(d)
- ex11 = convertToDER(ex11)
- ex21 = convertToDER(ex21)
- c1 = convertToDER(c1)
- value = v1+e1+n1+d1+ex11+ex21+c1
- length = len(convertValue(value))
- if lenght < 127:
- lhex = intToByte(length//2)
- else:
- leng = intToByte(length//2)
- size = intToHex(len(leng))
- l = '1' + toBin(size,7)
- lhex= hex(int(l, 2))
- return hexToByte('30' + lhex + value)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement