add SHA224_CTX, SHA384_CTX

This commit is contained in:
tsingbx
2024-07-30 21:24:03 +08:00
parent 6e24792b9b
commit 95f64761ca
3 changed files with 32 additions and 28 deletions

View File

@@ -45,22 +45,22 @@ func main() {
openssl.SHA512String(str, unsafe.SliceData(h6))
fmt.Printf("%x\n", h6)
var sha224 openssl.SHA256_CTX
sha224.Init224()
sha224.Update224String(str)
var sha224 openssl.SHA224_CTX
sha224.Init()
sha224.UpdateString(str)
h7 := make([]byte, openssl.SHA224_DIGEST_LENGTH)
sha224.Final224(unsafe.SliceData(h7))
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.SHA512_CTX
sha384.Init384()
sha384.Update384String(str)
var sha384 openssl.SHA384_CTX
sha384.Init()
sha384.UpdateString(str)
h9 := make([]byte, openssl.SHA384_DIGEST_LENGTH)
sha384.Final384(unsafe.SliceData(h9))
sha384.Final(unsafe.SliceData(h9))
fmt.Printf("%x\n", h9)
h10 := make([]byte, openssl.SHA384_DIGEST_LENGTH)
openssl.SHA384String(str, unsafe.SliceData(h10))

View File

@@ -13,30 +13,32 @@ type SHA256_CTX struct {
Num, MdLen c.Uint
}
type SHA224_CTX SHA256_CTX
// OSSL_DEPRECATEDIN_3_0 int SHA224_Init(SHA256_CTX *c);
//
// llgo:link (*SHA256_CTX).Init224 C.SHA224_Init
func (c *SHA256_CTX) Init224() c.Int { return 0 }
// llgo:link (*SHA224_CTX).Init C.SHA224_Init
func (c *SHA224_CTX) Init() c.Int { return 0 }
// OSSL_DEPRECATEDIN_3_0 int SHA224_Update(SHA256_CTX *c, const void *data, size_t len);
//
// llgo:link (*SHA256_CTX).Update224 C.SHA224_Update
func (c *SHA256_CTX) Update224(data unsafe.Pointer, n uintptr) c.Int { return 0 }
// llgo:link (*SHA224_CTX).Update C.SHA224_Update
func (c *SHA224_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 }
func (c *SHA256_CTX) Update224Bytes(data []byte) c.Int {
return c.Update224(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)))
func (c *SHA224_CTX) UpdateBytes(data []byte) c.Int {
return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)))
}
func (c *SHA256_CTX) Update224String(data string) c.Int {
return c.Update224(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)))
func (c *SHA224_CTX) UpdateString(data string) c.Int {
return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)))
}
// OSSL_DEPRECATEDIN_3_0 int SHA224_Final(unsigned char *md, SHA256_CTX *c);
//
//go:linkname sha224Final C.SHA224_Final
func sha224Final(md *byte, c *SHA256_CTX) c.Int
func sha224Final(md *byte, c *SHA224_CTX) c.Int
func (c *SHA256_CTX) Final224(md *byte) c.Int {
func (c *SHA224_CTX) Final(md *byte) c.Int {
return sha224Final(md, c)
}

View File

@@ -13,30 +13,32 @@ type SHA512_CTX struct {
Num, MdLen c.Uint
}
type SHA384_CTX SHA512_CTX
// OSSL_DEPRECATEDIN_3_0 int SHA384_Init(SHA512_CTX *c);
//
// llgo:link (*SHA512_CTX).Init384 C.SHA384_Init
func (c *SHA512_CTX) Init384() c.Int { return 0 }
// llgo:link (*SHA384_CTX).Init C.SHA384_Init
func (c *SHA384_CTX) Init() c.Int { return 0 }
// OSSL_DEPRECATEDIN_3_0 int SHA384_Update(SHA512_CTX *c, const void *data, size_t len);
//
// llgo:link (*SHA512_CTX).Update384 C.SHA384_Update
func (c *SHA512_CTX) Update384(data unsafe.Pointer, n uintptr) c.Int { return 0 }
// llgo:link (*SHA384_CTX).Update C.SHA384_Update
func (c *SHA384_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 }
func (c *SHA512_CTX) Update384Bytes(data []byte) c.Int {
return c.Update384(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)))
func (c *SHA384_CTX) UpdateBytes(data []byte) c.Int {
return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)))
}
func (c *SHA512_CTX) Update384String(data string) c.Int {
return c.Update384(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)))
func (c *SHA384_CTX) UpdateString(data string) c.Int {
return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)))
}
// OSSL_DEPRECATEDIN_3_0 int SHA384_Final(unsigned char *md, SHA512_CTX *c);
//
//go:linkname sha384Final C.SHA384_Final
func sha384Final(md *byte, c *SHA512_CTX) c.Int
func sha384Final(md *byte, c *SHA384_CTX) c.Int
func (c *SHA512_CTX) Final384(md *byte) c.Int {
func (c *SHA384_CTX) Final(md *byte) c.Int {
return sha384Final(md, c)
}