本文整理汇总了Golang中encoding/pem.Encode函数的典型用法代码### 示例。如果您正苦于以下问题:Golang Encode函数的具体用法?Golang Encode怎么用?Golang Encode使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。

在下文中一共展示了Encode函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。

示例1: newCertificate

func newCertificate(dir string, prefix string) {
    l.Infoln("Generating RSA key and certificate...")

    priv, err := rsa.GenerateKey(rand.Reader, tlsRSABits)
    l.FatalErr(err)

    notBefore := time.Now()
    notAfter := time.Date(2049, 12, 31, 23, 59, 59, 0, time.UTC)

    template := x509.Certificate{
        SerialNumber: new(big.Int).SetInt64(mr.Int63()),
        Subject: pkix.Name{
            CommonName: tlsName,
        },
        NotBefore: notBefore,
        NotAfter:  notAfter,

        KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
        ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth, x509.ExtKeyUsageClientAuth},
        BasicConstraintsValid: true,
    }

    derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, &priv.PublicKey, priv)
    l.FatalErr(err)

    certOut, err := os.Create(filepath.Join(dir, prefix+"cert.pem"))
    l.FatalErr(err)
    pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
    certOut.Close()

    keyOut, err := os.OpenFile(filepath.Join(dir, prefix+"key.pem"), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
    l.FatalErr(err)
    pem.Encode(keyOut, &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(priv)})
    keyOut.Close()
}

开发者ID:Rongya,项目名称:syncthing,代码行数:35,代码来源:tls.go

示例2: create

func (cmd *setcert) create(id string) error {
    certFile, err := os.Create(id + ".crt")
    if err != nil {
        return err
    }
    defer certFile.Close()

    keyFile, err := os.Create(id + ".key")
    if err != nil {
        return err
    }
    defer keyFile.Close()

    priv, err := rsa.GenerateKey(rand.Reader, 2048)
    if err != nil {
        return err
    }

    notBefore := time.Now()
    notAfter := notBefore.Add(5 * 365 * 24 * time.Hour) // 5 years

    serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
    serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
    if err != nil {
        return err
    }

    template := x509.Certificate{
        SerialNumber: serialNumber,
        Subject: pkix.Name{
            Organization: []string{cmd.org},
        },
        NotBefore:             notBefore,
        NotAfter:              notAfter,
        KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
        BasicConstraintsValid: true,
    }

    derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, &priv.PublicKey, priv)
    if err != nil {
        return err
    }

    err = pem.Encode(&cmd.encodedCert, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
    if err != nil {
        return err
    }

    _, err = certFile.Write(cmd.encodedCert.Bytes())
    if err != nil {
        return err
    }

    err = pem.Encode(keyFile, &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(priv)})
    if err != nil {
        return err
    }

    return nil
}

开发者ID:vmware,项目名称:vic,代码行数:60,代码来源:setcert.go

示例3: GenKeyPairIfNone

func GenKeyPairIfNone(privateName string, publicName string) {
    dir, _ := filepath.Abs(filepath.Dir(os.Args[0]))
    privatekey := filepath.Join(dir, privateName)
    publickey := filepath.Join(dir, publicName)

    if _, err := os.Stat(string(privatekey)); os.IsNotExist(err) {

        log.Println("Generating JWT private key at ", string(privatekey))
        k, err := rsa.GenerateKey(rand.Reader, 2048)
        if err != nil {
            log.Fatal(err)
        }
        var private pem.Block
        private.Type = "RSA PRIVATE KEY"
        private.Bytes = x509.MarshalPKCS1PrivateKey(k)
        pp := new(bytes.Buffer)
        pem.Encode(pp, &private)
        err = ioutil.WriteFile(string(privatekey), pp.Bytes(), 0644)
        if err != nil {
            log.Fatal(err)
        }

        log.Println("Generating JWT public key at ", string(privatekey))
        var public pem.Block
        public.Type = "RSA PUBLIC KEY"
        public.Bytes, _ = x509.MarshalPKIXPublicKey(&k.PublicKey)
        ps := new(bytes.Buffer)
        pem.Encode(ps, &public)
        err = ioutil.WriteFile(string(publickey), ps.Bytes(), 0644)
        if err != nil {
            log.Fatal(err)
        }
    }

}

开发者ID:RadioTerminal,项目名称:podcaster,代码行数:35,代码来源:jwt.go

示例4: writeCertsAndKeys

func writeCertsAndKeys(template *x509.Certificate, certPath string, signeeKey *rsa.PrivateKey, keyPath string, parent *x509.Certificate, signingKey *rsa.PrivateKey) error {
    derBytes, err := x509.CreateCertificate(rand.Reader, template, parent, &signeeKey.PublicKey, signingKey)
    if err != nil {
        return errors.Wrap(err, "Error creating certificate")
    }

    certBuffer := bytes.Buffer{}
    if err := pem.Encode(&certBuffer, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}); err != nil {
        return errors.Wrap(err, "Error encoding certificate")
    }

    keyBuffer := bytes.Buffer{}
    if err := pem.Encode(&keyBuffer, &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(signeeKey)}); err != nil {
        return errors.Wrap(err, "Error encoding key")
    }

    if err := os.MkdirAll(filepath.Dir(certPath), os.FileMode(0755)); err != nil {
        return errors.Wrap(err, "Error creating certificate directory")
    }
    if err := ioutil.WriteFile(certPath, certBuffer.Bytes(), os.FileMode(0644)); err != nil {
        return errors.Wrap(err, "Error writing certificate to cert path")
    }

    if err := os.MkdirAll(filepath.Dir(keyPath), os.FileMode(0755)); err != nil {
        return errors.Wrap(err, "Error creating key directory")
    }
    if err := ioutil.WriteFile(keyPath, keyBuffer.Bytes(), os.FileMode(0600)); err != nil {
        return errors.Wrap(err, "Error writing key file")
    }

    return nil
}

开发者ID:rawlingsj,项目名称:gofabric8,代码行数:32,代码来源:crypto.go

示例5: main

func main() {
    max := new(big.Int).Lsh(big.NewInt(1), 128)
    serialNumber, _ := rand.Int(rand.Reader, max)
    subject := pkix.Name{
        Organization:       []string{"Manning Publications Co."},
        OrganizationalUnit: []string{"Books"},
        CommonName:         "Go Web Programming",
    }

    template := x509.Certificate{
        SerialNumber: serialNumber,
        Subject:      subject,
        NotBefore:    time.Now(),
        NotAfter:     time.Now().Add(365 * 24 * time.Hour),
        KeyUsage:     x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
        ExtKeyUsage:  []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
        IPAddresses:  []net.IP{net.ParseIP("127.0.0.1")},
    }

    pk, _ := rsa.GenerateKey(rand.Reader, 2048)

    derBytes, _ := x509.CreateCertificate(rand.Reader, &template, &template, &pk.PublicKey, pk)
    certOut, _ := os.Create("cert.pem")
    pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
    certOut.Close()

    keyOut, _ := os.Create("key.pem")
    pem.Encode(keyOut, &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(pk)})
    keyOut.Close()
}

开发者ID:jf,项目名称:gwp,代码行数:30,代码来源:gencert.go

最后编辑: kuteng  文档更新时间: 2021-08-23 19:14   作者:kuteng