if err != nil {
return
}
- return db.Set("key", fmt.Sprintf("%X", sk.PrimaryKey.Fingerprint), b.Bytes())
+ return db.Set("key", key.Id(sk), b.Bytes())
}
func GetKeys(fpr string) (es openpgp.EntityList, err error) {
}
for _, e := range entities {
// TODO: various checks..
- isIssuer, issuer, denom, err1 := key.CheckEntity(e)
+ // TODO: collect errors instead of aborting addkeys
+ isIssuer, issuer, denom, err1 := key.Check(e)
err = err1
if err != nil {
- // TODO..
- continue
+ return
}
if !isIssuer {
- es, err := GetKeys(issuer)
+ es, err1 := GetKeys(issuer)
+ err = err1
+ if err != nil {
+ return
+ }
+ ok, _, den, err1 := key.Check(es[0])
+ err = err1
if err != nil {
- // TODO..
- continue
+ // internal error
+ return
}
- ok, _, den, err := key.CheckEntity(es[0])
- if !ok || err != nil || den != denom {
- // TODO..
- continue
+ if !ok || den != denom {
+ err = fmt.Errorf("Issuer key check failed")
+ return
}
}
b := new(bytes.Buffer)
if err != nil {
return
}
- fpr := fmt.Sprintf("%X", e.PrimaryKey.Fingerprint)
- err = db.Set("key", fpr, b.Bytes())
+ fpr := key.Id(e)
+ err = db.Insert("key", fpr, b.Bytes())
if err != nil {
return
}
}
draft, ok := iv.(*document.Draft)
if !ok {
- err = fmt.Errorf("ParseDraft: expected a draft docuent")
+ err = fmt.Errorf("ParseDraft: expected a draft document")
return
}
draftid = document.Id(signed)
if err != nil {
return
}
- _, issuer, denom, err := key.CheckEntity(kr[0])
+ _, issuer, denom, err := key.Check(kr[0])
if err != nil {
return
}
// internal error: pubkey cannot be parsed
return
}
- _, issuer2, denom2, err := key.CheckEntity(kr[0])
+ _, issuer2, denom2, err := key.Check(kr[0])
if err != nil {
return
}
func NewDebitCert(draftid string, draft *document.Draft) (*document.DebitCert, error) {
cert := new(document.DebitCert)
cert.Holder = draft.Drawer
- cert.Date = time.Seconds()
+ cert.Date = time.Now().Unix()
cert.Denomination = "epoint"
cert.Issuer = draft.Issuer
cert.AuthorizedBy = draft.AuthorizedBy
if err != nil {
// first cert: drawer is issuer
if draft.Drawer != draft.Issuer {
- return nil, fmt.Errorf("drawer must be the issuer when drawing an empty account")
+ return nil, fmt.Errorf("drawer must be the issuer when drawing an empty account (%s != %s)", draft.Drawer, draft.Issuer)
}
cert.Serial = 1
cert.Balance = cert.Difference
}
cert.LastDebitSerial = oldcert.LastDebitSerial
cert.LastCreditSerial = oldcert.LastCreditSerial
- if _,ok := iv.(*document.DebitCert); ok {
+ if _, ok := iv.(*document.DebitCert); ok {
cert.LastDebitSerial = oldcert.Serial
} else {
cert.LastCreditSerial = oldcert.Serial
cert := new(document.CreditCert)
// TODO: get from old cert instead?
cert.Holder = dcert.Beneficiary
- cert.Date = time.Seconds()
+ cert.Date = time.Now().Unix()
// TODO: get these from the cert holder pubkey
cert.Denomination = "epoint"
cert.Issuer = draft.Issuer
}
cert.LastDebitSerial = oldcert.LastDebitSerial
cert.LastCreditSerial = oldcert.LastCreditSerial
- if _,ok := iv.(*document.DebitCert); ok {
+ if _, ok := iv.(*document.DebitCert); ok {
cert.LastDebitSerial = oldcert.Serial
} else {
cert.LastCreditSerial = oldcert.Serial