A MSc Dissertation work on the PQC messaging system using the Circl(Cloudflare) Digital Signature(Dilithium) and Key Encapsulation Mechanism (KEM)(Kyber) for acheving the cryptographic security.
File/Folder | Description |
---|---|
cmd/ | The cli application logic folder |
common/ | Common func and features used by the application logic |
config/ | The configuration load and read for the application by the .env and other files. |
logs/ | Logging directory for the application acctiivties |
storage/ | All the application related files and keys stored |
msgcrypto/ | Cryptographic alogroithm and logic |
.env | Environmental file to store and declare the variables |
.
├── LICENSE
├── README
├── cmd
│ ├── listUsers.go
│ ├── readMsg.go
│ ├── root.go
│ ├── sendMsg.go
│ └── userID.go
├── common
│ └── common.go
├── config
│ └── env.go
├── go.mod
├── go.sum
├── logs
│ └── logfile_2024-08-09
├── main.go
├── msgcrypto
│ └── crypto.go
└── storage
├── 123
│ ├── keys
│ │ ├── kem
│ │ │ ├── privateKeyKEM
│ │ │ └── publicKeyKEM
│ │ └── sign
│ │ ├── privateKeySK
│ │ └── publicKeySK
│ └── messages
│ ├── counter.txt
│ ├── encryptedMsg-1.json
├── 345
│ ├── keys
│ │ ├── kem
│ │ │ ├── privateKeyKEM
│ │ │ └── publicKeyKEM
│ │ └── sign
│ │ ├── privateKeySK
│ │ └── publicKeySK
│ └── messages
│ ├── counter.txt
│ ├── encryptedMsg-1.json
│ ├── encryptedMsg-2.json
└── self
└── keys
├── kem
│ ├── privateKeyKEM
│ └── publicKeyKEM
└── sign
├── privateKeySK
└── publicKeySK
└── storage --main root folder.
├── 123 --contact id.
│ ├── keys --root key folder for the contact.
│ │ ├── kem --KEM keys used for deriving shared key pair and key encapsulation mechanism.
│ │ │ ├── privateKeyKEM
│ │ │ └── publicKeyKEM
│ │ └── sign -Digital Signature key pair used for signing the messages.
│ │ ├── privateKeySK
│ │ └── publicKeySK
│ └── messages --Direcorty to store the messages/conversation.
│ ├── counter.txt --counter file to keep track of the number of messages in the conversation.
│ ├── encryptedMsg-1.json --copy of the send messages to the contact.
The application works a stand alone application which has been completed a proof of concept and not recommended to be used for other than academic purposes. To install the application, follow these steps:
Clone the repository:
git clone https://github.com/the-ancient-one/message-cli
Change into the project directory:
cd message-cli
Install the dependencies:
go mod download
Build the application:
go build
Run the application:
./message-cli
Make sure you have Go installed on your system before proceeding with the installation.
To use the application, follow these steps:
Open a terminal and navigate to the project directory.
Run the application:
./message-cli
Follow the on-screen instructions to interact with the messaging system.
Sending message using the flags.
./message-cli sendMsg -u=345 -m="dqwdwd grtgrtg Hellow"
Reading the message with flags.
./message-cli readMsg -u=345
Most code is released under the New BSD (3 Clause) License. If subdirectories include a different license, that license applies instead.
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.