> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pipevest.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cryptographic Keys

We leverage cryptographic keys to create cryptographic message signatures. These signatures help to maintain the authenticity and integrity of HTTP requests within the Pipevest platform.

### Supported Key Types

We currently only support [ED25519](https://datatracker.ietf.org/doc/html/rfc8032) key types.

### Instructions to Generate Keys

<Note> You can use any Cryptographic Key Generator of your choice</Note>

<Steps>
  <Step title="Generate Staging Keys">
    1. Private Key

    ```bash theme={null}
      openssl genpkey -algorithm ed25519 -outform PEM -out staging-pipevest-private-ed25519.pem   
    ```

    2. Public Key

    ```bash theme={null}
      openssl pkey -in staging-pipevest-private-ed25519.pem -pubout -out staging-pipevest-public-ed25519.pub
    ```
  </Step>

  <Step title="Copy Staging Public Key">
    <Tabs>
      <Tab title="MacOs">
        ```bash theme={null}
          pbcopy < ./staging-pipevest-public-ed25519.pub
        ```
      </Tab>

      <Tab title="Linux">
        ```bash theme={null}
          cat ./staging-pipevest-public-ed25519.pub | xclip
        ```
      </Tab>

      <Tab title="Windows">
        ```bash theme={null}
          cat ./staging-pipevest-public-ed25519.pub | clip
        ```
      </Tab>
    </Tabs>

    <Note>This public key will need to be submitted when requesting for API access</Note>
  </Step>

  <Step title="Generate Production Keys">
    1. Private Key

    ```bash theme={null}
      openssl genpkey -algorithm ed25519 -outform PEM -out production-pipevest-private-ed25519.pem   
    ```

    2. Public Key

    ```bash theme={null}
      openssl pkey -in production-pipevest-private-ed25519.pem -pubout -out production-pipevest-public-ed25519.pub
    ```
  </Step>

  <Step title="Copy Production Public Key">
    <Tabs>
      <Tab title="MacOs">
        ```bash theme={null}
          pbcopy < ./production-pipevest-public-ed25519.pub
        ```
      </Tab>

      <Tab title="Linux">
        ```bash theme={null}
          cat ./production-pipevest-public-ed25519.pub | xclip
        ```
      </Tab>

      <Tab title="Windows">
        ```bash theme={null}
          cat ./production-pipevest-public-ed25519.pub | clip
        ```
      </Tab>
    </Tabs>

    <Note>This public key will need to be submitted when requesting for API access</Note>
  </Step>
</Steps>

<Info>
  The generated private keys must be safely secured in accordance with to your
  organizations cryptographic key retention policies.
</Info>
