首页 > 解决方案 > 从公钥/私钥装甲密钥中读取实体

问题描述

是否可以使用 golang openpgp 包从给定的装甲私钥/公钥读取实体详细信息,例如名称/评论和电子邮件?

以下代码实现了一个生成新的装甲密钥对的测试,然后尝试从中获取实体详细信息。

然而,生成的实体不包含任何身份信息。

package main

import (
    "log"
    "testing"

    "github.com/jchavannes/go-pgp/pgp"
    "golang.org/x/crypto/openpgp"
)

func TestID(t *testing.T) {
    keypair, err := pgp.GenerateKeyPair("test", "tst comment", "test@email.com")
    if err != nil {
        t.Fatalf("failed to generate keypair: %s", err)
    }
    var entity *openpgp.Entity
    entity, err = pgp.GetEntity([]byte(keypair.PublicKey), []byte(keypair.PrivateKey))
    if err != nil {
        t.Fatalf("failed to read entity: %s", err)
    }
    log.Printf("%#v\n", entity.Identities)
}

输出

2019/05/19 00:02:54 map[string]*openpgp.Identity{"":(*openpgp.Identity)(0xc00006edc0)}

预计entity.Identities包含test (tst comment) <test@email.com>.

标签: gocryptographypgpopenpgp

解决方案


推荐阅读