org.bouncycastle.crypto.generators
Interface Argon2BytesGenerator.BlockPool
- All Known Implementing Classes:
- Argon2BytesGenerator.FixedBlockPool
- Enclosing interface:
- Argon2BytesGenerator
- public static interface Argon2BytesGenerator.BlockPool
Strategy for allocating and recycling Argon2 Block objects.
An implementation may simply return fresh blocks from
allocate() (the default behaviour) or pool them so the
underlying buffers can be reused across successive
calls. Implementations must accept matching
allocate/deallocate pairs - the generator does not guard against
double-deallocation of the same block.
The generator zeroises a block before passing it to
#deallocate(Block), so an implementation never receives
password-derived data and need not clear anything itself; a block it
hands out from allocate() may be returned as it came back.
Block#clear() is public for an implementation that wants to
zeroise blocks it obtained some other way. Size a pool that is to
recycle a whole run with
Argon2BytesGenerator.getBlockCount(int, int).
allocate
public Argon2BytesGenerator.Block allocate()
deallocate
public void deallocate(Argon2BytesGenerator.Block block)