]> Cypherpunks repositories - gostls13.git/commit
[dev.boringcrypto] crypto/internal/boring: make accesses to RSA types with finalizers...
authorFilippo Valsorda <filippo@golang.org>
Mon, 2 Mar 2020 20:52:56 +0000 (15:52 -0500)
committerFilippo Valsorda <filippo@golang.org>
Tue, 3 Mar 2020 20:42:07 +0000 (20:42 +0000)
commit79284c28734bf854f44106835b5578ead75eb547
tree0918eb7157b3dddc012749370c9517d9080debd0
parent6c64b188a53afec79563cf4ad3c5bc373036d3ae
[dev.boringcrypto] crypto/internal/boring: make accesses to RSA types with finalizers safer

RSA key types have a finalizer that will free the underlying C value
when the Go one is garbage collected. It's important that the finalizer
doesn't run while a cgo call is using the underlying C value, so they
require runtime.KeepAlive calls after each use.

This is error prone, so replace it with a closure that provides access
to the underlying C value and then automatically calls KeepAlive.

AES, HMAC, and ECDSA also need KeepAlives, but they have much fewer call
sites, so avoid the complexity for now.

Change-Id: I6d6f38297cd1cf384a1639974d9739a939cbdbcc
Reviewed-on: https://go-review.googlesource.com/c/go/+/221822
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
src/crypto/internal/boring/rsa.go