# OKMS SDK

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

Go SDK for the OVHcloud Key Management Service.

Latest release v0.5.4 Aug 6, 2026 [pkg.go.dev](https://pkg.go.dev/github.com/ovh/okms-sdk-go)

[github.com/ovh/okms-sdk-go](https://github.com/ovh/okms-sdk-go)

## Install

Add it to your project by running

```bash
go get github.com/ovh/okms-sdk-go@latest
```

## Connect to your KMS

Then you can connect to your KMS service

```go
cert, err := tls.LoadX509KeyPair(os.Getenv("OKMS_CLIENT_CERT_FILE"), os.Getenv("OKMS_CLIENT_KEY_FILE"))
if err != nil {
    panic(err)
}
httpClient := http.Client{
    Transport: &http.Transport{TLSClientConfig: &tls.Config{
        Certificates: []tls.Certificate{cert},
        MinVersion:   tls.VersionTLS12,
    }},
}

okmsIdString := os.Getenv("OKMS_ID")
okmsId, err := uuid.Parse(okmsIdString)
if err != nil {
    panic(err)
}

kmsClient, err := okms.NewRestAPIClientWithHttp("https://eu-west-rbx.okms.ovh.net", &httpClient)
if err != nil {
    panic(err)
}

// Then start using the kmsClient
// Create a new AES 256 key
respAes, err := okmsClient.GenerateSymmetricKey(ctx, okmsId, types.N256, "AES key example", "", []types.CryptographicUsages{types.Encrypt, types.Decrypt, types.WrapKey, types.UnwrapKey})
if err != nil {
    panic(err)
}
fmt.Println("AES KEY:", respAes.Id)
```

Quoted from [okms-sdk-go's README](https://github.com/ovh/okms-sdk-go#readme).

[Next SHAI →](https://developers.eu.ovhcloud.com/sdks/shai.md)
