Skip to content

Latest commit

 

History

History
177 lines (135 loc) · 3.51 KB

File metadata and controls

177 lines (135 loc) · 3.51 KB

jceks/jks 使用文档

jceks 生成

package main

import (
    "fmt"
    "crypto"
    "crypto/x509"

    cryptobin_jceks "github.com/deatil/go-cryptobin/jceks"
)

func main() {
    var alias string
    var keypass string
    var privateKey crypto.PrivateKey
    var certs []*x509.Certificate
    var cert *x509.Certificate // 证书
    var secretKey []byte

    var passwd string
    var pfxData []byte

    en := cryptobin_jceks.NewJceksEncode()
    en.AddPrivateKey(alias, privateKey, keypass, certs) // 私钥和证书链
    en.AddTrustedCert(alias, cert) // 证书
    en.AddSecretKey(alias, secretKey, keypass) // 密钥

    pfxData, err := en.Marshal(passwd)

    fmt.Println("生成 jceks 成功")
}

jceks 解析

package main

import (
    "io"
    "fmt"
    "crypto"
    "crypto/x509"

    cryptobin_jceks "github.com/deatil/go-cryptobin/jceks"
)

func main() {
	var err error
    var jceksData []byte
    var passwd string
    var reader io.Reader

    ks, err := cryptobin_jceks.LoadFromBytes(jceksData, passwd)
    // ks, err := cryptobin_jceks.LoadFromReader(reader, passwd)

    // 获取私钥和证书链
    var alias string
    var keypass string

    var key crypto.PrivateKey
    var certs []*x509.Certificate
    key, certs, err = ks.GetPrivateKeyAndCerts(alias, keypass)

    // 获取证书
    var alias string
    var cert *x509.Certificate
    cert, err = ks.GetCert(alias)

    // 获取密钥
    var alias string
    var secret []byte
    secret, err = ks.GetSecretKey(alias, keypass)

    // 列出私钥对应的别名
    var priAliases []string
    priAliases = ks.ListPrivateKeys()

    // 列出证书对应的别名
    var certsAliases []string
    certsAliases = ks.ListCerts()

    // 列出密钥对应的别名
    var secretsAliases []string
    secretsAliases = ks.ListSecretKeys()

    fmt.Println("解析 jceks 成功")
}

jks 生成

package main

import (
    "fmt"
    "crypto"
    "crypto/x509"

    cryptobin_jceks "github.com/deatil/go-cryptobin/jceks"
)

func main() {
    var alias string
    var keypass string
    var privateKey crypto.PrivateKey
    var certs []*x509.Certificate
    var cert *x509.Certificate // 证书

    var passwd string
    var pfxData []byte

    en := cryptobin_jceks.NewJksEncode()
    en.AddPrivateKey(alias, privateKey, keypass, certs) // 私钥和证书链
    en.AddTrustedCert(alias, cert) // 证书

    pfxData, err := en.Marshal(passwd)

    fmt.Println("生成 jks 成功")
}

jks 解析

package main

import (
    "io"
    "fmt"
    "time"
    "crypto"
    "crypto/x509"

    cryptobin_jceks "github.com/deatil/go-cryptobin/jceks"
)

func main() {
	var err error
    var jceksData []byte
    var passwd string
    var reader io.Reader

    ks, err := cryptobin_jceks.LoadJksFromBytes(jceksData, passwd)
    // ks, err := cryptobin_jceks.LoadJksFromReader(reader, passwd)

    var alias string

    // 获取私钥
    var keypass string
    var key crypto.PrivateKey
    key, err = ks.GetPrivateKey(alias, keypass)

    // 获取证书链
    var certs []*x509.Certificate
    certs, err = ks.GetCertChain(alias)

    // 获取证书
    var cert *x509.Certificate
    cert, err = ks.GetCert(alias)

    // 获取别名对应时间
    var date time.Time
    date, err = ks.GetCreateDate(alias)

    // 列出私钥对应的别名
    var priAliases []string
    priAliases = ks.ListPrivateKeys()

    // 列出证书对应的别名
    var certsAliases []string
    certsAliases = ks.ListCerts()

    fmt.Println("解析 jceks 成功")
}