> For the complete documentation index, see [llms.txt](https://nibss-doc.enyata.com/utility-key-encryption/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nibss-doc.enyata.com/utility-key-encryption/how-to-generate-keys-with-ssm-java.md).

# HOW TO GENERATE KEYS WITH SSM - JAVA

Guide for the SSM process to create the private and public key.

Create a small java project.

Go to your file system

Create a public.key and private.key in c:\keys\\

Open the two files and type in a secret text

Save the file

***Create a main class***

```java
public static void main(String[] args) {
    SSMLib ssmlib = new SSMLib("C:/path/public.key", "C:/path/private.key");
    ssmlib.generateKeyPair("page_username", "page_password");

    //Method to Generate Public and Private keys
    public void generatePublicAndPrivateKeys() {
        SSMLib enc = new SSMLib("c:/NMRC_public.key", "c:/NMRC_private.key");
        enc.generateKeyPair("Any_user_name", "Any_password");
    }

    //How to encrypt a request
    public String encryptRequest(final String dataToEncrypt) {
        SSMLib enc = new SSMLib("c:/NMRC_public.key", "c:/NMRC_private.key");
        return enc.encryptMessage(dataToEncrypt);
    }

    //How to decrypt a request
    public String decryptRequest(final String dataToDecrypt) {
        SSMLib enc = new SSMLib("c:/nibss_public.key", "c:/NMRC_private.key");
        return enc.decryptFile(dataToDecrypt, "Password_Used_To_Generate_Key_Pair");
    }
}
```
