init: v1.0.0

This commit is contained in:
yaole
2026-05-27 23:03:00 +08:00
commit 8d97f750eb
466 changed files with 80067 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
package internal
import "math/big"
const maxPoolCount = 1024
// bnPool implements a tiny cache of *big.Int objects that's used to reduce the
// number of allocations made during processing.
// TODO bnPool 必须在每个线程中一个。只有将SM2的操作定义为sm2对象的方法,在初始化对象的时候定义一个.
// 并且,该对象不能被多线程共享。
type bnPool struct {
bns []*big.Int
}
func (pool *bnPool) Get() *big.Int {
l := len(pool.bns)
if l > 0 {
bn := pool.bns[l-1]
pool.bns = pool.bns[:l-1]
return bn
}
return new(big.Int)
}
func (pool *bnPool) Put(bn *big.Int) {
pool.bns = append(pool.bns, bn)
}
func (pool *bnPool) Count() int {
return len(pool.bns)
}