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

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

示例1: GenerateCertificateForTest

func GenerateCertificateForTest() *v2tls.Certificate {
    priv, err := rsa.GenerateKey(rand.Reader, 2048)
    common.Must(err)

    serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
    serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
    if err != nil {
        log.Fatalf("failed to generate serial number: %s", err)
    }

    template := x509.Certificate{
        SerialNumber: serialNumber,
        Subject: pkix.Name{
            Organization: []string{"V2Ray Inc"},
        },
        NotBefore:             time.Now(),
        NotAfter:              time.Now().Add(time.Hour),
        KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
        ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
        BasicConstraintsValid: true,
        DNSNames:              []string{"www.v2ray.com"},
    }

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

    certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
    keyPEM := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(priv)})

    return &v2tls.Certificate{
        Certificate: certPEM,
        Key:         keyPEM,
    }
}

开发者ID:ylywyn,项目名称:v2ray-core,代码行数:34,代码来源:tls.go

示例2: GenerateServer

func (crtkit *CertKit) GenerateServer(subject pkix.Name, host, email string, NotBefore ...time.Time) error {
    var e error
    var derBytes []byte
    var notBefore time.Time

    priv, err := rsa.GenerateKey(rand.Reader, 2048)
    if err != nil {
        return errors.New(fmt.Sprintf("failed to generate private key: %s", err))
    }

    if len(NotBefore) > 0 {
        notBefore = NotBefore[0]
    } else {
        notBefore = time.Now()
    }
    serialNumber, err := rand.Int(rand.Reader, new(big.Int).Lsh(big.NewInt(1), 128))
    if err != nil {
        return errors.New(fmt.Sprintf("failed to generate serial number: %s", err))
    }

    if host == "" {
        host, _ = os.Hostname()
    }

    Goose.Generator.Logf(6, "Certificate authority used: %#v", crtkit.CACert)

    template := x509.Certificate{
        SerialNumber:          serialNumber,
        Subject:               subject,
        IsCA:                  false,
        NotBefore:             notBefore,
        NotAfter:              notBefore.Add(365 * 24 * time.Hour),
        DNSNames:              []string{host, strings.Split(host, ".")[0]},
        AuthorityKeyId:        crtkit.CACert.SubjectKeyId,
        KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageContentCommitment,
        ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth, x509.ExtKeyUsageClientAuth},
        BasicConstraintsValid: true,
    }

    Goose.Generator.Logf(4, "X509 Template: %#v", template)

    if crtkit.CACert.CRLDistributionPoints != nil {
        template.CRLDistributionPoints = crtkit.CACert.CRLDistributionPoints
    } else {
        Goose.Generator.Logf(1, "Certificate authority without CRL distribution points")
    }

    crtkit.ServerKey = priv
    crtkit.ServerCert = &template
    derBytes, e = x509.CreateCertificate(rand.Reader, &template, crtkit.CACert, &priv.PublicKey, crtkit.CAKey)
    if e != nil {
        return errors.New(fmt.Sprintf("Failed to create certificate: %s", e))
    }
    Goose.Generator.Logf(4, "DER Certificate: %s", derBytes)
    crtkit.ServerCertPem = pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
    crtkit.ServerKeyPem = pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(priv)})
    Goose.Generator.Logf(4, "PEM Certificate: %s", crtkit.ServerCertPem)

    return nil
}

开发者ID:luisfurquim,项目名称:stonelizard,代码行数:60,代码来源:gencert.go

示例3: GenerateKey

func GenerateKey() (pkPem []byte, pubkPem []byte, pubSSHAK []byte, err error) {
    pk, err := rsa.GenerateKey(rand.Reader, 2048)
    if err != nil {
        return
    }
    pkDer := x509.MarshalPKCS1PrivateKey(pk)
    pkBlock := pem.Block{
        Type:    "RSA PRIVATE KEY",
        Headers: nil,
        Bytes:   pkDer,
    }
    pkPem = pem.EncodeToMemory(&pkBlock)

    pubk := pk.PublicKey
    pubkDer, err := x509.MarshalPKIXPublicKey(&pubk)
    if err != nil {
        return
    }

    pubkBlock := pem.Block{
        Type:    "PUBLIC KEY",
        Headers: nil,
        Bytes:   pubkDer,
    }
    pubkPem = pem.EncodeToMemory(&pubkBlock)

    pubSSH, err := ssh.NewPublicKey(&pubk)
    if err != nil {
        return
    }
    pubSSHAK = ssh.MarshalAuthorizedKey(pubSSH)

    return
}

开发者ID:41px,项目名称:dmz,代码行数:34,代码来源:rsa.go

示例4: Export

func (reg Registration) Export(password string) (*RegistrationExport, error) {
    keyBlock, err := reg.SigningKey.EncryptPrivateKey(password, utils.PemDefaultCipher)
    if nil != err {
        return nil, err
    }
    jsonBytes, err := json.Marshal(rawRegistrationExportJson{
        Resource:           reg.Resource,
        LinkTermsOfService: reg.LinkTermsOfService,
        RecoveryToken:      reg.RecoveryToken,
    })
    if nil != err {
        return nil, err
    }
    jsonBlock := &pem.Block{
        Type:  pemTypeAcmeJsonRegistration,
        Bytes: jsonBytes,
    }
    if err := utils.EncryptPemBlock(jsonBlock, password, utils.PemDefaultCipher); nil != err {
        return nil, err
    }
    return &RegistrationExport{
        JsonPem:       pem.EncodeToMemory(jsonBlock),
        SigningKeyPem: pem.EncodeToMemory(keyBlock),
        Location:      reg.Location,
        Name:          reg.Name,
    }, nil
}

开发者ID:NeuralSpaz,项目名称:go-acme-client,代码行数:27,代码来源:export_registration.go

示例5: generateSshKeyUsingGo

func generateSshKeyUsingGo() (string, string, error) {
    privateKey, err := rsa.GenerateKey(rand.Reader, 2014)
    if err != nil {
        return "", "", err
    }

    fmt.Printf("----> creating ssh private key using Golang\n")
    privateKeyDer := x509.MarshalPKCS1PrivateKey(privateKey)
    privateKeyBlock := pem.Block{
        Type:    "RSA PRIVATE KEY",
        Headers: nil,
        Bytes:   privateKeyDer,
    }
    privateKeyPem := string(pem.EncodeToMemory(&privateKeyBlock))

    fmt.Printf("----> creating ssh public key using Golang\n")
    publicKey := privateKey.PublicKey
    publicKeyDer, err := x509.MarshalPKIXPublicKey(&publicKey)
    if err != nil {
        return "", "", err
    }

    publicKeyBlock := pem.Block{
        Type:    "PUBLIC KEY",
        Headers: nil,
        Bytes:   publicKeyDer,
    }

    publicKeyPem := string(pem.EncodeToMemory(&publicKeyBlock))

    return privateKeyPem, publicKeyPem, nil
}

开发者ID:digideskweb,项目名称:bosh-softlayer-cpi,代码行数:32,代码来源:test_helpers.go

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