This repository has been archived by the owner on May 18, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
encrypt.c.i.go
69 lines (66 loc) · 2.74 KB
/
encrypt.c.i.go
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
package libc
import unsafe "unsafe"
var _cgos___encrypt_key_encrypt struct_expanded_key
func Setkey(key *int8) {
var bkey [8]uint8
var i int32
var j int32
for i = int32(0); i < int32(8); i++ {
*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(&bkey)))) + uintptr(i))) = uint8(0)
for j = int32(7); j >= int32(0); func() *int8 {
j--
return func() (_cgo_ret *int8) {
_cgo_addr := &key
_cgo_ret = *_cgo_addr
*(*uintptr)(unsafe.Pointer(_cgo_addr))++
return
}()
}() {
*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(&bkey)))) + uintptr(i))) |= uint8(uint32(int32(*key)&int32(1)) << j)
}
}
__des_setkey((*uint8)(unsafe.Pointer(&bkey)), &_cgos___encrypt_key_encrypt)
}
func encrypt(block *int8, edflag int32) {
var decrypt_key struct_expanded_key
var key *struct_expanded_key
var b [2]uint32
var i int32
var j int32
var p *int8
p = block
for i = int32(0); i < int32(2); i++ {
*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&b)))) + uintptr(i)*4)) = uint32(0)
for j = int32(31); j >= int32(0); func() *int8 {
j--
return func() (_cgo_ret *int8) {
_cgo_addr := &p
_cgo_ret = *_cgo_addr
*(*uintptr)(unsafe.Pointer(_cgo_addr))++
return
}()
}() {
*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&b)))) + uintptr(i)*4)) |= uint32(int32(*p)&int32(1)) << j
}
}
key = &_cgos___encrypt_key_encrypt
if edflag != 0 {
key = &decrypt_key
for i = int32(0); i < int32(16); i++ {
*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&decrypt_key.l)))) + uintptr(i)*4)) = *(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&_cgos___encrypt_key_encrypt.l)))) + uintptr(int32(15)-i)*4))
*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&decrypt_key.r)))) + uintptr(i)*4)) = *(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&_cgos___encrypt_key_encrypt.r)))) + uintptr(int32(15)-i)*4))
}
}
__do_des(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&b)))) + uintptr(int32(0))*4)), *(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&b)))) + uintptr(int32(1))*4)), (*uint32)(unsafe.Pointer(&b)), (*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&b))))+uintptr(int32(1))*4)), uint32(1), uint32(0), key)
p = block
for i = int32(0); i < int32(2); i++ {
for j = int32(31); j >= int32(0); j-- {
*func() (_cgo_ret *int8) {
_cgo_addr := &p
_cgo_ret = *_cgo_addr
*(*uintptr)(unsafe.Pointer(_cgo_addr))++
return
}() = int8(*(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint32)(unsafe.Pointer(&b)))) + uintptr(i)*4)) >> j & uint32(1))
}
}
}