1
Ich bin auf der Suche nach einem einfachen Beispiel für die Analyse einer X.509 PEM in gehen und die Werte auf stdout Dumping. Kann jemand ein Beispiel geben?Parsing und Drucken von X.509-Attributen aus PEM
Ich bin auf der Suche nach einem einfachen Beispiel für die Analyse einer X.509 PEM in gehen und die Werte auf stdout Dumping. Kann jemand ein Beispiel geben?Parsing und Drucken von X.509-Attributen aus PEM
Sie möchten encoding.pem
verwenden, um die PEM-Datei zu dekodieren, die Ihnen die DER-Blöcke liefert, die Sie mit dem crypto/x509
-Paket dekodieren können.
Zum Beispiel:
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)
}
Perfekt dankt Ihnen - alle Beispiele enthalten viele Dinge, die ich nicht brauchte, so konnte ich nicht das Holz von den Bäumen sehen. – user1513388
Eigentlich eine andere Frage. Wenn ich die lesbaren Werte von den OIDS in den Erweiterungen bekommen muss. z.B. '\t Erweiterungen: [{Id: 2.5.29.19 Kritisch: wahr Wert: [48 6 1 1 255 2 1 0]} {Id: 2.5.29.15 Kritisch: wahr Wert: [3 2 1 6]} {Id: 2.5. 29.14 Kritisch: falsch Wert: [4 20 130 58 82 76 175 51 150 249 100 78 198 192 222 152 125 138 116 43 190 57]} {Id: 2.5.29.35 Kritisch: falsch Wert: [48 22 128 20 193 119 177 45 157 107 253 81 197 19 136 6 147 96 30 135 125 249 52 15]}] Gibt es einen einfachen Weg, sie zu bekommen? – user1513388
@ user1513388: Ich bin mir nicht sicher, was du meinst. Du hast sie schon; Sie werden als ['pkix.Extension'] dekodiert (https://golang.org/pkg/crypto/x509/pkix/#Extension). – JimB