Should be better at documenting things.
This commit is contained in:
parent
c2dca76803
commit
49444c3318
|
@ -10,8 +10,10 @@ Contents:
|
||||||
cmd/
|
cmd/
|
||||||
certchain/ Display the certificate chain from a
|
certchain/ Display the certificate chain from a
|
||||||
TLS connection.
|
TLS connection.
|
||||||
|
certdump/ Dump certificate information.
|
||||||
csrpubdump/ Dump the public key from an X.509
|
csrpubdump/ Dump the public key from an X.509
|
||||||
certificate request.
|
certificate request.
|
||||||
|
fragment/ Print a fragment of a file.
|
||||||
readchain/ Print the common name for the certificates
|
readchain/ Print the common name for the certificates
|
||||||
in a bundle.
|
in a bundle.
|
||||||
stealchain/ Dump the verified chain from a TLS
|
stealchain/ Dump the verified chain from a TLS
|
||||||
|
|
|
@ -0,0 +1,133 @@
|
||||||
|
certdump
|
||||||
|
|
||||||
|
Dump a PEM file containing certificates.
|
||||||
|
|
||||||
|
It takes a number of files on the command line which should contain
|
||||||
|
at least one certificate, and dumps the certificates found in those
|
||||||
|
files. If the -l flag is given, it is assumed the file is a bundle and
|
||||||
|
only the leaf certificate will be shown.
|
||||||
|
|
||||||
|
Example (kyleisom.pem and tyrfingr.pem are the bundled certificates
|
||||||
|
for two of my sites):
|
||||||
|
|
||||||
|
$ certdump *.pem
|
||||||
|
--kyleisom.pem ---
|
||||||
|
CERTIFICATE
|
||||||
|
Subject: /*.kyleisom.net/OU=Domain Control Validated/OU=PositiveSSL Wildcard
|
||||||
|
Issuer: /COMODO RSA Domain Validation Secure Server CA/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Signature algorithm: RSA / SHA256
|
||||||
|
Details:
|
||||||
|
Public key: RSA-2048
|
||||||
|
Serial number: 140424811868659069090147614569911695367
|
||||||
|
AKI: 90:AF:6A:3A:94:5A:0B:D8:90:EA:12:56:73:DF:43:B4:3A:28:DA:E7
|
||||||
|
SKI: 64:07:29:EA:3A:FE:2C:00:48:62:FB:22:E4:E9:72:7E:2F:0F:C3:2D
|
||||||
|
Valid from: 2014-11-16T00:00:00+0000
|
||||||
|
until: 2015-11-16T23:59:59+0000
|
||||||
|
Key usages: key encipherment, digital signature
|
||||||
|
Extended usages: server auth, client auth
|
||||||
|
Basic constraints: valid
|
||||||
|
SANs: *.kyleisom.net, kyleisom.net
|
||||||
|
CERTIFICATE
|
||||||
|
Subject: /COMODO RSA Domain Validation Secure Server CA/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Issuer: /COMODO RSA Certification Authority/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Signature algorithm: RSA / SHA384
|
||||||
|
Details:
|
||||||
|
Public key: RSA-2048
|
||||||
|
Serial number: 57397899145990363081023081275480378375
|
||||||
|
AKI: BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4
|
||||||
|
SKI: 90:AF:6A:3A:94:5A:0B:D8:90:EA:12:56:73:DF:43:B4:3A:28:DA:E7
|
||||||
|
Valid from: 2014-02-12T00:00:00+0000
|
||||||
|
until: 2029-02-11T23:59:59+0000
|
||||||
|
Key usages: cert sign, crl sign, digital signature
|
||||||
|
Extended usages: server auth, client auth
|
||||||
|
Basic constraints: valid, is a CA certificate, max path length 0
|
||||||
|
SANs:
|
||||||
|
---tyrfingr.pem ---
|
||||||
|
CERTIFICATE
|
||||||
|
Subject: /*.tyrfingr.is/OU=Domain Control Validated/OU=PositiveSSL Wildcard
|
||||||
|
Issuer: /COMODO RSA Domain Validation Secure Server CA/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Signature algorithm: RSA / SHA256
|
||||||
|
Details:
|
||||||
|
Public key: RSA-2048
|
||||||
|
Serial number: 129805972439942088783496286074667556011
|
||||||
|
AKI: 90:AF:6A:3A:94:5A:0B:D8:90:EA:12:56:73:DF:43:B4:3A:28:DA:E7
|
||||||
|
SKI: C6:25:79:D7:A7:9A:85:BE:7F:DE:3B:3D:7A:B7:2E:96:DE:46:05:D7
|
||||||
|
Valid from: 2014-10-03T00:00:00+0000
|
||||||
|
until: 2015-10-03T23:59:59+0000
|
||||||
|
Key usages: key encipherment, digital signature
|
||||||
|
Extended usages: server auth, client auth
|
||||||
|
Basic constraints: valid
|
||||||
|
SANs: *.tyrfingr.is, tyrfingr.is
|
||||||
|
CERTIFICATE
|
||||||
|
Subject: /COMODO RSA Domain Validation Secure Server CA/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Issuer: /COMODO RSA Certification Authority/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Signature algorithm: RSA / SHA384
|
||||||
|
Details:
|
||||||
|
Public key: RSA-2048
|
||||||
|
Serial number: 57397899145990363081023081275480378375
|
||||||
|
AKI: BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4
|
||||||
|
SKI: 90:AF:6A:3A:94:5A:0B:D8:90:EA:12:56:73:DF:43:B4:3A:28:DA:E7
|
||||||
|
Valid from: 2014-02-12T00:00:00+0000
|
||||||
|
until: 2029-02-11T23:59:59+0000
|
||||||
|
Key usages: cert sign, digital signature, crl sign
|
||||||
|
Extended usages: server auth, client auth
|
||||||
|
Basic constraints: valid, is a CA certificate, max path length 0
|
||||||
|
SANs:
|
||||||
|
CERTIFICATE
|
||||||
|
Subject: /COMODO RSA Certification Authority/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Issuer: /AddTrust External CA Root/C=SE/O=AddTrust AB/OU=AddTrust External TTP
|
||||||
|
Network
|
||||||
|
Signature algorithm: RSA / SHA384
|
||||||
|
Details:
|
||||||
|
Public key: RSA-4096
|
||||||
|
Serial number: 52374340215108295845375962883522092578
|
||||||
|
AKI: AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A
|
||||||
|
SKI: BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4
|
||||||
|
Valid from: 2000-05-30T10:48:38+0000
|
||||||
|
until: 2020-05-30T10:48:38+0000
|
||||||
|
Key usages: digital signature, crl sign, cert sign
|
||||||
|
Basic constraints: valid, is a CA certificate
|
||||||
|
SANs:
|
||||||
|
|
||||||
|
$ certdump *.pem
|
||||||
|
--kyleisom.pem ---
|
||||||
|
CERTIFICATE
|
||||||
|
Subject: /*.kyleisom.net/OU=Domain Control Validated/OU=PositiveSSL Wildcard
|
||||||
|
Issuer: /COMODO RSA Domain Validation Secure Server CA/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Signature algorithm: RSA / SHA256
|
||||||
|
Details:
|
||||||
|
Public key: RSA-2048
|
||||||
|
Serial number: 140424811868659069090147614569911695367
|
||||||
|
AKI: 90:AF:6A:3A:94:5A:0B:D8:90:EA:12:56:73:DF:43:B4:3A:28:DA:E7
|
||||||
|
SKI: 64:07:29:EA:3A:FE:2C:00:48:62:FB:22:E4:E9:72:7E:2F:0F:C3:2D
|
||||||
|
Valid from: 2014-11-16T00:00:00+0000
|
||||||
|
until: 2015-11-16T23:59:59+0000
|
||||||
|
Key usages: digital signature, key encipherment
|
||||||
|
Extended usages: server auth, client auth
|
||||||
|
Basic constraints: valid
|
||||||
|
SANs: *.kyleisom.net, kyleisom.net
|
||||||
|
--tyrfingr.pem ---
|
||||||
|
CERTIFICATE
|
||||||
|
Subject: /*.tyrfingr.is/OU=Domain Control Validated/OU=PositiveSSL Wildcard
|
||||||
|
Issuer: /COMODO RSA Domain Validation Secure Server CA/C=GB/O=COMODO CA
|
||||||
|
Limited/L=Salford/ST=Greater Manchester
|
||||||
|
Signature algorithm: RSA / SHA256
|
||||||
|
Details:
|
||||||
|
Public key: RSA-2048
|
||||||
|
Serial number: 129805972439942088783496286074667556011
|
||||||
|
AKI: 90:AF:6A:3A:94:5A:0B:D8:90:EA:12:56:73:DF:43:B4:3A:28:DA:E7
|
||||||
|
SKI: C6:25:79:D7:A7:9A:85:BE:7F:DE:3B:3D:7A:B7:2E:96:DE:46:05:D7
|
||||||
|
Valid from: 2014-10-03T00:00:00+0000
|
||||||
|
until: 2015-10-03T23:59:59+0000
|
||||||
|
Key usages: digital signature, key encipherment
|
||||||
|
Extended usages: server auth, client auth
|
||||||
|
Basic constraints: valid
|
||||||
|
SANs: *.tyrfingr.is, tyrfingr.is
|
|
@ -0,0 +1,40 @@
|
||||||
|
fragment
|
||||||
|
|
||||||
|
This is a program to print a fragment of a file. It takes a filename,
|
||||||
|
a starting line (lines are numbered starting at 1) and an optional
|
||||||
|
end line or offset.
|
||||||
|
|
||||||
|
For example, compare the output to `nl -ba fragment.go`:
|
||||||
|
|
||||||
|
$ fragment fragment.go 23 +6
|
||||||
|
23: func main() {
|
||||||
|
24: flag.Parse()
|
||||||
|
25:
|
||||||
|
26: if flag.NArg() < 2 || flag.NArg() > 3 {
|
||||||
|
27: usage()
|
||||||
|
28: os.Exit(1)
|
||||||
|
29: }
|
||||||
|
|
||||||
|
$ fragment fragment.go 25 30
|
||||||
|
25:
|
||||||
|
26: if flag.NArg() < 2 || flag.NArg() > 3 {
|
||||||
|
27: usage()
|
||||||
|
28: os.Exit(1)
|
||||||
|
29: }
|
||||||
|
30:
|
||||||
|
|
||||||
|
$ fragment fragment.go 80
|
||||||
|
80
|
||||||
|
80: if n > end {
|
||||||
|
81: return true
|
||||||
|
82: }
|
||||||
|
83: return false
|
||||||
|
84: }
|
||||||
|
85:
|
||||||
|
86: fmt.Println(start)
|
||||||
|
87: fmtStr += "\n"
|
||||||
|
88: for i := start; !endFunc(i); i++ {
|
||||||
|
89: fmt.Printf(fmtStr, i, lines[i])
|
||||||
|
90: }
|
||||||
|
91: }
|
||||||
|
|
|
@ -46,13 +46,6 @@ func main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if end < start {
|
|
||||||
fmt.Println("[!] end < start, swapping values")
|
|
||||||
tmp := end
|
|
||||||
end = start
|
|
||||||
start = tmp
|
|
||||||
}
|
|
||||||
|
|
||||||
file, err := os.Open(flag.Arg(0))
|
file, err := os.Open(flag.Arg(0))
|
||||||
die.If(err)
|
die.If(err)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
@ -65,6 +58,17 @@ func main() {
|
||||||
lines = append(lines, scanner.Text())
|
lines = append(lines, scanner.Text())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if end == 0 {
|
||||||
|
end = len(lines) - 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if end < start {
|
||||||
|
fmt.Println("[!] end < start, swapping values")
|
||||||
|
tmp := end
|
||||||
|
end = start
|
||||||
|
start = tmp
|
||||||
|
}
|
||||||
|
|
||||||
maxLine := fmt.Sprintf("%d", len(lines))
|
maxLine := fmt.Sprintf("%d", len(lines))
|
||||||
fmtStr := fmt.Sprintf("%%0%dd: %%s", len(maxLine))
|
fmtStr := fmt.Sprintf("%%0%dd: %%s", len(maxLine))
|
||||||
|
|
||||||
|
@ -72,12 +76,14 @@ func main() {
|
||||||
if n == 0 {
|
if n == 0 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if n > end {
|
if n > end {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Println(start)
|
||||||
fmtStr += "\n"
|
fmtStr += "\n"
|
||||||
for i := start; !endFunc(i); i++ {
|
for i := start; !endFunc(i); i++ {
|
||||||
fmt.Printf(fmtStr, i, lines[i])
|
fmt.Printf(fmtStr, i, lines[i])
|
||||||
|
|
Loading…
Reference in New Issue