forked from TrueCloudLab/frostfs-api-go
[#62] signature: Refactor BufferPool
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
This commit is contained in:
parent
b46e8cfbda
commit
72885aae83
4 changed files with 73 additions and 58 deletions
|
@ -4,9 +4,14 @@ import (
|
|||
"crypto/ecdsa"
|
||||
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
|
||||
crypto "git.frostfs.info/TrueCloudLab/frostfs-crypto"
|
||||
)
|
||||
|
||||
const poolSliceMaxSize = 128 * 1024
|
||||
|
||||
var buffersPool = pool.NewBufferPool(poolSliceMaxSize)
|
||||
|
||||
type DataSource interface {
|
||||
ReadSignedData([]byte) ([]byte, error)
|
||||
SignedDataSize() int
|
||||
|
@ -35,12 +40,10 @@ func SignDataWithHandler(key *ecdsa.PrivateKey, src DataSource, handler KeySigna
|
|||
opts[i](cfg)
|
||||
}
|
||||
|
||||
buffer, ok := tryGetNewBufferFromPool(src.SignedDataSize())
|
||||
if ok {
|
||||
defer returnBufferToPool(buffer)
|
||||
}
|
||||
buffer := buffersPool.Get(uint32(src.SignedDataSize()))
|
||||
defer buffersPool.Put(buffer)
|
||||
|
||||
data, err := src.ReadSignedData(buffer.data)
|
||||
data, err := src.ReadSignedData(buffer.Data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -66,12 +69,10 @@ func VerifyDataWithSource(dataSrc DataSource, sigSrc KeySignatureSource, opts ..
|
|||
opts[i](cfg)
|
||||
}
|
||||
|
||||
buffer, ok := tryGetNewBufferFromPool(dataSrc.SignedDataSize())
|
||||
if ok {
|
||||
defer returnBufferToPool(buffer)
|
||||
}
|
||||
buffer := buffersPool.Get(uint32(dataSrc.SignedDataSize()))
|
||||
defer buffersPool.Put(buffer)
|
||||
|
||||
data, err := dataSrc.ReadSignedData(buffer.data)
|
||||
data, err := dataSrc.ReadSignedData(buffer.Data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue