[#3] signature: Add buffer pool
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
73fde0e37c
commit
ec0d0274fa
5 changed files with 67 additions and 58 deletions
|
@ -35,7 +35,10 @@ func SignDataWithHandler(key *ecdsa.PrivateKey, src DataSource, handler KeySigna
|
|||
opts[i](cfg)
|
||||
}
|
||||
|
||||
data, err := readSignedData(cfg, src)
|
||||
buffer := newBufferFromPool(src.SignedDataSize())
|
||||
defer returnBufferToPool(buffer)
|
||||
|
||||
data, err := src.ReadSignedData(buffer)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -61,7 +64,10 @@ func VerifyDataWithSource(dataSrc DataSource, sigSrc KeySignatureSource, opts ..
|
|||
opts[i](cfg)
|
||||
}
|
||||
|
||||
data, err := readSignedData(cfg, dataSrc)
|
||||
buffer := newBufferFromPool(dataSrc.SignedDataSize())
|
||||
defer returnBufferToPool(buffer)
|
||||
|
||||
data, err := dataSrc.ReadSignedData(buffer)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -76,13 +82,3 @@ func SignData(key *ecdsa.PrivateKey, v DataWithSignature, opts ...SignOption) er
|
|||
func VerifyData(src DataWithSignature, opts ...SignOption) error {
|
||||
return VerifyDataWithSource(src, src.GetSignature, opts...)
|
||||
}
|
||||
|
||||
func readSignedData(cfg *cfg, src DataSource) ([]byte, error) {
|
||||
size := src.SignedDataSize()
|
||||
if cfg.buffer == nil || cap(cfg.buffer) < size {
|
||||
cfg.buffer = make([]byte, size)
|
||||
} else {
|
||||
cfg.buffer = cfg.buffer[:size]
|
||||
}
|
||||
return src.ReadSignedData(cfg.buffer)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue