69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"unsafe"
|
|
|
|
"github.com/goplus/llgo/c/openssl"
|
|
)
|
|
|
|
func main() {
|
|
str := "His money is twice tainted:"
|
|
|
|
var sha1 openssl.SHA_CTX
|
|
sha1.Init()
|
|
sha1.UpdateString(str)
|
|
|
|
h1 := make([]byte, openssl.SHA_DIGEST_LENGTH)
|
|
sha1.Final(unsafe.SliceData(h1))
|
|
fmt.Printf("%x\n", h1)
|
|
|
|
h2 := make([]byte, openssl.SHA_DIGEST_LENGTH)
|
|
openssl.SHA1String(str, unsafe.SliceData(h2))
|
|
fmt.Printf("%x\n", h2)
|
|
|
|
var sha256 openssl.SHA256_CTX
|
|
sha256.Init()
|
|
sha256.UpdateString(str)
|
|
h3 := make([]byte, openssl.SHA256_DIGEST_LENGTH)
|
|
sha256.Final(unsafe.SliceData(h3))
|
|
fmt.Printf("%x\n", h3)
|
|
|
|
h4 := make([]byte, openssl.SHA256_DIGEST_LENGTH)
|
|
openssl.SHA256String(str, unsafe.SliceData(h4))
|
|
fmt.Printf("%x\n", h4)
|
|
|
|
var sha512 openssl.SHA512_CTX
|
|
sha512.Init()
|
|
sha512.UpdateString("His money is twice tainted:")
|
|
|
|
h5 := make([]byte, openssl.SHA512_DIGEST_LENGTH)
|
|
sha512.Final(unsafe.SliceData(h5))
|
|
fmt.Printf("%x\n", h5)
|
|
|
|
h6 := make([]byte, openssl.SHA512_DIGEST_LENGTH)
|
|
openssl.SHA512String(str, unsafe.SliceData(h6))
|
|
fmt.Printf("%x\n", h6)
|
|
|
|
var sha224 openssl.SHA224_CTX
|
|
sha224.Init()
|
|
sha224.UpdateString(str)
|
|
|
|
h7 := make([]byte, openssl.SHA224_DIGEST_LENGTH)
|
|
sha224.Final(unsafe.SliceData(h7))
|
|
fmt.Printf("%x\n", h7)
|
|
h8 := make([]byte, openssl.SHA224_DIGEST_LENGTH)
|
|
openssl.SHA224String(str, unsafe.SliceData(h8))
|
|
fmt.Printf("%x\n", h8)
|
|
|
|
var sha384 openssl.SHA384_CTX
|
|
sha384.Init()
|
|
sha384.UpdateString(str)
|
|
h9 := make([]byte, openssl.SHA384_DIGEST_LENGTH)
|
|
sha384.Final(unsafe.SliceData(h9))
|
|
fmt.Printf("%x\n", h9)
|
|
h10 := make([]byte, openssl.SHA384_DIGEST_LENGTH)
|
|
openssl.SHA384String(str, unsafe.SliceData(h10))
|
|
fmt.Printf("%x\n", h10)
|
|
}
|