document: verify signature
[epoint] / pkg / key / key.go
index 37f2c63..29e92bd 100644 (file)
@@ -29,6 +29,7 @@ import (
 
 // TODO: keep denomination only in issuer key?
 // TODO: cleanup
+// TODO: server key
 
 const P = "A4D2B9575C25F0E622B8694387128A793E1AD27D12FFF4B5BA11A37CEFD31C935BCBB0A944581A6E6DA12986FCBA9D666607D71D365C286B9BCB57F6D938BE74982B7D770CE438F03B0A20ABA02E5691458C39D96E6E86AE564176ED1A6DFBAFB6EE7674CC5EDCF9FEB6158471FB3FAB53BA1CE1BA64C5626B9E8585FCEF5D31"
 const Q = "FFFFFFFFFFFFFFFFFFFF254EAF9E7916D607AAAF"
@@ -108,6 +109,11 @@ func Holder(r []byte, issuer, denomination string) (e *openpgp.Entity, err error
        return New(DsaKey(r), 0, "Holder of "+issuer, denomination, "")
 }
 
+// Key id (fingerprint)
+func Id(e *openpgp.Entity) string {
+       return fmt.Sprintf("%X", e.PrimaryKey.Fingerprint)
+}
+
 // Check the issuer and denomination associated with the given pgp key
 func Check(e *openpgp.Entity) (isIssuer bool, issuer, denomination string, err error) {
        // allow multiple identities, use the first one that looks like an epoint uid
@@ -115,7 +121,7 @@ func Check(e *openpgp.Entity) (isIssuer bool, issuer, denomination string, err e
                denomination = id.UserId.Comment
                if id.UserId.Name == "Issuer" {
                        isIssuer = true
-                       issuer = fmt.Sprintf("%X", e.PrimaryKey.Fingerprint)
+                       issuer = Id(e)
                        return
                }
                const prefix = "Holder of "