Я хочу сгенерировать ssh-ключ, public и private и вернуть в виде строки, но я не знаю, как я могу преобразовать тип * pem.Block в строку.
это мой текущий код:
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/asn1"
"encoding/pem"
"fmt"
"bytes"
"bufio"
)
func Keymaker() {
reader := rand.Reader
bitSize := 2048
key, err := rsa.GenerateKey(reader, bitSize)
if err != nil {
//return nil, nil, err
}
publicKey := key.PublicKey
var privateKey = &pem.Block{
Type: "PRIVATE KEY",
Bytes: x509.MarshalPKCS1PrivateKey(key),
}
asn1Bytes, err := asn1.Marshal(publicKey)
if err != nil {
//return nil, nil, err
}
var pemkey = &pem.Block{
Type: "PUBLIC KEY",
Bytes: asn1Bytes,
}
var PublicKeyRow bytes.Buffer
err = pem.Encode(bufio.NewWriter(&PublicKeyRow), pemkey)
fmt.Println("public_key : ", PublicKeyRow)
fmt.Println("private_key : ", privateKey )
return
}
func main() {
Keymaker()
}
и это моя текущая ошибка:
# command-line-arguments
./dkim.go:46:38: cannot convert privateKey (type *pem.Block) to type string
Мне нужно в формате строки, потому что я хочу сохранить ключ в базе данных, как я могу преобразовать (тип * pem.Block) в тип строки?и как я могу преобразовать (введите bytes.Buffer) в строку типа?