@@ 66-84 (lines=19) @@ | ||
63 | ||
64 | return integer |
|
65 | ||
66 | def int2bytes(number): |
|
67 | """Converts a number to a string of bytes |
|
68 | ||
69 | >>>int2bytes(123456789) |
|
70 | '\x07[\xcd\x15' |
|
71 | >>> bytes2int(int2bytes(123456789)) |
|
72 | 123456789 |
|
73 | """ |
|
74 | ||
75 | if not (type(number) is types.LongType or type(number) is types.IntType): |
|
76 | raise TypeError("You must pass a long or an int") |
|
77 | ||
78 | string = "" |
|
79 | ||
80 | while number > 0: |
|
81 | string = "%s%s" % (chr(number & 0xFF), string) |
|
82 | number /= 256 |
|
83 | ||
84 | return string |
|
85 | ||
86 | def to64(number): |
|
87 | """Converts a number in the range of 0 to 63 into base 64 digit |
@@ 68-84 (lines=17) @@ | ||
65 | ||
66 | return integer |
|
67 | ||
68 | def int2bytes(number): |
|
69 | """Converts a number to a string of bytes |
|
70 | ||
71 | >>> bytes2int(int2bytes(123456789)) |
|
72 | 123456789 |
|
73 | """ |
|
74 | ||
75 | if not (type(number) is types.LongType or type(number) is types.IntType): |
|
76 | raise TypeError("You must pass a long or an int") |
|
77 | ||
78 | string = "" |
|
79 | ||
80 | while number > 0: |
|
81 | string = "%s%s" % (chr(number & 0xFF), string) |
|
82 | number /= 256 |
|
83 | ||
84 | return string |
|
85 | ||
86 | def fast_exponentiation(a, p, n): |
|
87 | """Calculates r = a^p mod n |