out io.Writer
}
+var nl = []byte{'\n'}
+
func (l *lineBreaker) Write(b []byte) (n int, err error) {
if l.used+len(b) < pemLineLength {
copy(l.line[l.used:], b)
return
}
- n, err = l.out.Write([]byte{'\n'})
+ n, err = l.out.Write(nl)
if err != nil {
return
}
if err != nil {
return
}
- _, err = l.out.Write([]byte{'\n'})
+ _, err = l.out.Write(nl)
}
return
return err
}
}
- if _, err := out.Write([]byte{'\n'}); err != nil {
+ if _, err := out.Write(nl); err != nil {
return err
}
}
import (
"bytes"
+ "io/ioutil"
"reflect"
"testing"
)
}
}
+func BenchmarkEncode(b *testing.B) {
+ data := &Block{Bytes: make([]byte, 65536)}
+ b.SetBytes(int64(len(data.Bytes)))
+ for i := 0; i < b.N; i++ {
+ Encode(ioutil.Discard, data)
+ }
+}
+
+func BenchmarkDecode(b *testing.B) {
+ block := &Block{Bytes: make([]byte, 65536)}
+ data := EncodeToMemory(block)
+ b.SetBytes(int64(len(data)))
+ b.ResetTimer()
+ for i := 0; i < b.N; i++ {
+ Decode(data)
+ }
+}
+
var pemData = `verify return:0
-----BEGIN CERTIFICATE-----
sdlfkjskldfj