+func debitcert() (d *DebitCert, err error) {
+ doc, err := ParseDocument([]byte(debitBody))
+ if err != nil {
+ return
+ }
+ iv, err := ParseStruct(doc)
+ if err != nil {
+ return
+ }
+ d, ok := iv.(*DebitCert)
+ if !ok {
+ err = fmt.Errorf("expecetd *DebitCert, got %T", d)
+ }
+ return
+}
+
+func BenchmarkSign(b *testing.B) {
+ d, err := debitcert()
+ if err != nil {
+ panic(err)
+ }
+ b.ResetTimer()
+ for i := 0; i < b.N; i++ {
+ k, err := parsekey(skey1)
+ if err != nil {
+ panic(err)
+ }
+ _, _, err = Format(d, k)
+ if err != nil {
+ panic(err)
+ }
+ }
+}
+
+func BenchmarkVerify(b *testing.B) {
+ d, err := debitcert()
+ if err != nil {
+ panic(err)
+ }
+ k, err := parsekey(skey1)
+ if err != nil {
+ panic(err)
+ }
+ s, _, err := Format(d, k)
+ if err != nil {
+ panic(err)
+ }
+ b.ResetTimer()
+ for i := 0; i < b.N; i++ {
+ k, err := parsekey(skey1)
+ if err != nil {
+ panic(err)
+ }
+ _, signed, err := Parse(s)
+ if err != nil {
+ panic(err)
+ }
+ err = Verify(signed, openpgp.EntityList{k})
+ if err != nil {
+ panic(err)
+ }
+ }
+}
+