aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/internal/boring/sha.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/internal/boring/sha.go')
-rw-r--r--src/crypto/internal/boring/sha.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/crypto/internal/boring/sha.go b/src/crypto/internal/boring/sha.go
index cf82f3f64f..b7843674a5 100644
--- a/src/crypto/internal/boring/sha.go
+++ b/src/crypto/internal/boring/sha.go
@@ -263,6 +263,20 @@ func (h *sha256Hash) Write(p []byte) (int, error) {
return len(p), nil
}
+func (h *sha256Hash) WriteString(s string) (int, error) {
+ if len(s) > 0 && C._goboringcrypto_SHA256_Update(h.noescapeCtx(), unsafe.Pointer(unsafe.StringData(s)), C.size_t(len(s))) == 0 {
+ panic("boringcrypto: SHA256_Update failed")
+ }
+ return len(s), nil
+}
+
+func (h *sha256Hash) WriteByte(c byte) error {
+ if C._goboringcrypto_SHA256_Update(h.noescapeCtx(), unsafe.Pointer(&c), 1) == 0 {
+ panic("boringcrypto: SHA256_Update failed")
+ }
+ return nil
+}
+
func (h0 *sha256Hash) sum(dst []byte) []byte {
h := *h0 // make copy so future Write+Sum is valid
if C._goboringcrypto_SHA256_Final((*C.uint8_t)(noescape(unsafe.Pointer(&h.out[0]))), h.noescapeCtx()) == 0 {