Bluespec SystemVerilog implementations of NIST Lightweight Cryptography (LWC) candidates.
Compliant with LWC Hardware API.
-
Bluespec LWC support package
LwcApi
-
CryptoCore implementations:
BlueLight sources are located in the bluelight directory.
BdIO is used for both input and output to/from CryptoCore
.
typedef struct {
CoreWord word; // data word
Bool lot; // last word of the type
Bit#(2) padarg; // padding argument, number of valid bytes or 0 if all valid
} BdIO;
interface CryptoCoreIfc;
method Action process(SegmentType typ, Bool empty); // after fire, 0 or more words of type `typ` will be processed by the CryptoCore
interface FifoIn#(BdIO) bdi; // input to CryptoCore
interface FifoOut#(BdIO) bdo; // output from CryptoCore
endinterface
Code statistics for BlueLight LWC package (generated by tokei
):
Language | Files | Lines | Code | Comments | Blanks |
---|---|---|---|---|---|
BSV | 5 | 945 | 684 | 71 | 190 |
LWC Testbench framework based on cocotb Python framework. Sources are located in cocolight directory.