Эквивалентом crypto.subtle.exportKey('raw', key)
является просто использование значения []byte
.
Это уже формат для симметричных c клавиш. Например: aes использует: func NewCipher(key []byte) (cipher.Block, error)
.
Таким образом, генерация ключа для AES256 и печать его необработанного значения будет выглядеть примерно так ( детская площадка ) ):
import (
"crypto/rand" // Careful: do not use "math/rand".
"fmt"
)
func main() {
key := make([]byte, 32) // 32 bytes for AES256.
_, err := rand.Read(key) // read from random source
if err != nil {
// handle error
}
fmt.Println(key)
}
Для других форматов экспорта и ключей вы можете обратиться к x509 , pem и функциям генерации ключей для каждого алгоритма.