2016-04-15 13 views

答えて

2

を使用してpemファイルをデコードすると、crypto/x509パッケージでデコードできるDERブロックが得られます。例えば

certPEMBlock, err := ioutil.ReadFile(certFile) 
if err != nil { 
    log.Fatal(err) 
} 

var blocks [][]byte 
for { 
    var certDERBlock *pem.Block 
    certDERBlock, certPEMBlock = pem.Decode(certPEMBlock) 
    if certDERBlock == nil { 
     break 
    } 

    if certDERBlock.Type == "CERTIFICATE" { 
     blocks = append(blocks, certDERBlock.Bytes) 
    } 
} 

for _, block := range blocks { 
    cert, err := x509.ParseCertificate(block) 
    if err != nil { 
     log.Println(err) 
     continue 
    } 

    fmt.Println("Certificate:") 
    fmt.Printf("\tSubject: %+v\n", cert.Subject) 
    fmt.Printf("\tDNS Names: %+v\n", cert.DNSNames) 
    fmt.Printf("\tEmailAddresses: %+v\n", cert.EmailAddresses) 
    fmt.Printf("\tIPAddresses: %+v\n", cert.IPAddresses) 
} 
+0

パーフェクトあなたのおかげ - すべての例では、私はので、私は木から木を見ることができなかった必要はありませんでした多くのものが含まれています。 – user1513388

+0

実際にはもう1つの質問です。拡張機能のOIDSから読み取り可能な値を取得する必要がある場合例えば'\t拡張:[{Id:2.5.29.19 Critical:true値:[48 6 1 1 255 2 1 0]} {Id:2.5.29.15クリティカル:true値:[3 2 1 6]} {Id:2.5。 29.14クリティカル:偽値:[4 20 130 58 82 76 175 51 150 249 100 78 198 192 222 152 125 138 116 43 43 190 57] {Id:2.5.29.35クリティカル:false値:[48 22 128 20 193 119 177 45 157 107 253 81 197 19 136 6 147 96 30 135 125 249 52 15]}]それらを手に入れる簡単な方法はありますか? – user1513388

+0

@ user1513388:あなたが何を意味するのか分かりません。あなたはすでにそれを持っています。それらは['pkix.Extension'](https://golang.org/pkg/crypto/x509/pkix/#Extension)としてデコードされます。 – JimB

関連する問題