Implement basic TOFU

This commit is contained in:
adnano
2020-09-25 21:43:13 -04:00
parent 4a95fe4a90
commit b4295dd2dc
5 changed files with 73 additions and 17 deletions
+10 -1
View File
@@ -71,9 +71,18 @@ type KnownHost struct {
Expires int64 // unix time of certificate notAfter date
}
func NewKnownHost(cert *x509.Certificate) KnownHost {
return KnownHost{
Hostname: cert.Subject.CommonName,
Algorithm: "SHA-512",
Fingerprint: Fingerprint(cert),
Expires: cert.NotAfter.Unix(),
}
}
// Write writes the known host to the provided io.Writer.
func (k KnownHost) Write(w io.Writer) (int, error) {
s := fmt.Sprintf("\n%s %s %s %d", k.Hostname, k.Algorithm, k.Fingerprint, k.Expires)
s := fmt.Sprintf("%s %s %s %d\n", k.Hostname, k.Algorithm, k.Fingerprint, k.Expires)
return w.Write([]byte(s))
}