diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index c179d71..da47cd8 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -4,8 +4,6 @@
 name: build
 
 on:
-  push:
-    branches: ["main"]
   workflow_call: {}
 
 jobs:
diff --git a/.github/workflows/main-branch.yaml b/.github/workflows/main-branch.yaml
new file mode 100644
index 0000000..825702a
--- /dev/null
+++ b/.github/workflows/main-branch.yaml
@@ -0,0 +1,23 @@
+name: release
+
+on:
+  push:
+    # run only against tags
+    branches: 
+      - main
+
+permissions:
+  contents: write
+  packages: write
+  # issues: write
+
+jobs:
+  build:
+    uses: ./.github/workflows/build.yaml
+    secrets: inherit
+    
+  integration-tests:
+    needs: build
+    uses: ./.github/workflows/test.yaml
+    secrets: inherit
+    
\ No newline at end of file
diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml
index 084ab4e..1043ac6 100644
--- a/.github/workflows/pull-request.yaml
+++ b/.github/workflows/pull-request.yaml
@@ -28,4 +28,9 @@ jobs:
     needs:
       - commitlint
     uses: ./.github/workflows/build.yaml
+    secrets: inherit
+
+  test:
+    needs: build
+    uses: ./.github/workflows/test.yaml
     secrets: inherit
\ No newline at end of file
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index f41de70..cc7bcff 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -15,9 +15,14 @@ jobs:
   build:
     uses: ./.github/workflows/build.yaml
     secrets: inherit
+    
+  integration-tests:
+    needs: build
+    uses: ./.github/workflows/test.yaml
+    secrets: inherit
 
   docker-build:
-    needs: build
+    needs: integration-tests
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v4
@@ -37,7 +42,7 @@ jobs:
       - run: KO_DOCKER_REPO=ghcr.io/ovh/okms-cli ko build --tags ${{ github.ref_name }},latest --push --bare --platform=linux/arm64,linux/amd64 ./cmd/okms
   
   goreleaser:
-    needs: build
+    needs: integration-tests
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v4
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
new file mode 100644
index 0000000..baf11e2
--- /dev/null
+++ b/.github/workflows/test.yaml
@@ -0,0 +1,56 @@
+name: test
+
+on:
+  workflow_call: {}
+
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: ./.github/actions/setup-build-env
+      - name: Build CLI
+        run: go build -cover ./cmd/okms
+      - name: Setup Venom
+        run: |
+          wget https://github.com/ovh/venom/releases/download/v1.2.0/venom.linux-amd64
+          mv venom.linux-amd64 venom
+          chmod +x venom
+      - name: Setup okms config file
+        run: |
+          echo "${{secrets.CERTIFICATE}}" > tls.crt
+          echo "${{secrets.PRIVATE_KEY}}" > tls.key
+
+          cat > okms.yaml <<-EOF
+          version: 1
+          profile: default
+          profiles:
+            default: # default profile
+              http:
+                endpoint: ${{secrets.KMS_HTTP_ENDPOINT}}
+                auth:
+                  type: mtls
+                  cert: $(pwd)/tls.crt
+                  key: $(pwd)/tls.key
+          EOF
+      - name: Test connectivity to KMS dmain
+        run: ./okms keys ls -d -c okms.yaml
+      - name: Execute tests
+        run: make -C tests
+      - uses: actions/upload-artifact@v4
+        with:
+          name: test_results
+          path: |
+            ./tests/out/test_results.html
+            ./tests/out/venom.log
+          retention-days: 5
+        if: always()
+      - uses: actions/upload-artifact@v4
+        with:
+          name: coverage
+          path: |
+            ./tests/out/coverage.txt
+            ./tests/out/coverage.html
+          retention-days: 5
+    
\ No newline at end of file
diff --git a/README.md b/README.md
index ab99c50..9eded8c 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 # okms-cli
-[![build](https://github.com/ovh/okms-cli/actions/workflows/build.yaml/badge.svg?branch=main)](https://github.com/ovh/okms-cli/actions/workflows/build.yaml)
+[![build](https://github.com/ovh/okms-cli/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/ovh/okms-cli/actions/workflows/test.yaml)
 [![license](https://img.shields.io/badge/license-Apache%202.0-red.svg?style=flat)](https://raw.githubusercontent.com/ovh/okms-sdk-go/master/LICENSE) [![Go Report Card](https://goreportcard.com/badge/github.com/ovh/okms-cli)](https://goreportcard.com/report/github.com/ovh/okms-cli)
 
 The CLI to interact with your [OVHcloud KMS](https://help.ovhcloud.com/csm/en-ie-kms-quick-start?id=kb_article_view&sysparm_article=KB0063362) services.
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 0000000..27c0de7
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,6 @@
+test:
+	rm -Rf out
+	../venom run --html-report --output-dir=out --var-from-file cfg/vars.yaml -v .
+	go tool covdata percent -i out/coverage
+	go tool covdata textfmt -i out/coverage -o out/coverage.txt
+	go tool cover -html out/coverage.txt -o out/coverage.html
\ No newline at end of file
diff --git a/tests/keys.yaml b/tests/keys.yaml
index 09ecbb8..8051f88 100644
--- a/tests/keys.yaml
+++ b/tests/keys.yaml
@@ -54,6 +54,73 @@ testcases:
           - result.code ShouldEqual 0
           - result.systemoutjson.objects_list ShouldJSONContainWithKey id {{ .value.keyId }}
 
+  - name: Update key
+    steps:
+      - name: Check AES key current name
+        type: okms-cmd
+        args: keys get {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+          - result.systemoutjson.name ShouldEqual "test-aes-1"
+      - name: Update AES key name
+        type: okms-cmd
+        args: keys update {{ .Create-Keys.aesKeyId }} --name test-aes-1-updated
+      - name: Check AES key new name
+        type: okms-cmd
+        args: keys get {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+          - result.systemoutjson.name ShouldEqual "test-aes-1-updated"
+
+  - name: Activate and Deactivate
+    steps:
+      - name: Check AES key is active
+        type: okms-cmd
+        args: keys get {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+          - result.systemoutjson.attributes.state ShouldEqual "active"
+      - name: Try activate AES key
+        type: okms-cmd
+        args: keys activate {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+      - name: Deactivate AES key
+        type: okms-cmd
+        args: keys deactivate {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+      - name: Check AES key is deactivated
+        type: okms-cmd
+        args: keys get {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+          - result.systemoutjson.attributes.state ShouldEqual "deactivated"
+      - name: Compromise AES key
+        type: okms-cmd
+        args: keys deactivate {{ .Create-Keys.aesKeyId }} --reason key_compromise
+        assertions:
+          - result.code ShouldEqual 0
+      - name: Check AES key is compromised
+        type: okms-cmd
+        args: keys get {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+          - result.systemoutjson.attributes.state ShouldEqual "compromised"
+          - result.systemoutjson.attributes.compromise_date ShouldNotBeNil
+      - name: Reactivate AES key
+        type: okms-cmd
+        args: keys activate {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+      - name: Check AES key is active
+        type: okms-cmd
+        args: keys get {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+          - result.systemoutjson.attributes.state ShouldEqual "active"
+          - result.systemoutjson.attributes.compromise_date ShouldBeNil
+
   - name: AES Encryption
     steps:
       - name: Encrypt data
@@ -281,6 +348,9 @@ testcases:
         args: keys import --usage encrypt,decrypt --symmetric test-import-aes YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=
         assertions:
           - result.code ShouldEqual 0
+        vars:
+          toDeleteAesKeyId:
+            from: result.systemoutjson.id
       - name: Import RSA PKCS1 key
         type: okms-cmd
         args: keys import --usage sign,verify test-import-rsa-pkcs1 @testdata/rsa_pkcs1.priv.pem
@@ -315,11 +385,24 @@ testcases:
 
   - name: Delete the keys
     steps:
+      - name: Try delete active AES key
+        type: okms-cmd
+        args: keys delete {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 1
+      - name: Deactivate AES key
+        type: okms-cmd
+        args: keys deactivate {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
+      - name: Delete deactivated AES key
+        type: okms-cmd
+        args: keys delete {{ .Create-Keys.aesKeyId }}
+        assertions:
+          - result.code ShouldEqual 0
       - name: Force delete the {{ .value.kind }} key
         type: okms-cmd
         range:
-          - keyId: "{{ .Create-Keys.aesKeyId }}"
-            kind: AES
           - keyId: "{{ .Create-Keys.rsaKeyId }}"
             kind: RSA
           - keyId: "{{ .Create-Keys.ecKeyId }}"
@@ -327,3 +410,20 @@ testcases:
         args: keys delete {{ .value.keyId }} --force
         assertions:
           - result.code ShouldEqual 0
+
+  - name: Cleanup Domain
+    steps:
+      - name: List all keys
+        type: okms-cmd
+        args: keys ls
+        assertions:
+          - result.code ShouldEqual 0
+        vars:
+          allKeys:
+            from: result.systemoutjson.objects_list
+      - name: Force delete {{ .value.type }} key {{ .value.name }}
+        type: okms-cmd
+        range: "{{.allKeys}}"
+        args: keys delete {{ .value.id }} --force
+        assertions:
+          - result.code ShouldEqual 0
diff --git a/tests/lib/okms-cmd.yml b/tests/lib/okms-cmd.yml
index 48f8e4e..a4306ee 100644
--- a/tests/lib/okms-cmd.yml
+++ b/tests/lib/okms-cmd.yml
@@ -4,7 +4,6 @@ input:
   format: json
 steps:
   - script: mkdir -p ./out/coverage && GOCOVERDIR=./out/coverage {{ .cmd_path }} -c {{ .cfg_path }} --output {{ .input.format }} {{ .input.args }}
-    # info: "{{ .cmd_path }} -c {{ .cfg_path }} --output {{ .input.format }} {{ .input.args }}"
     vars:
       code:
         from: result.code
diff --git a/tests/testdata/ecdsa_pkcs8.priv.pem b/tests/testdata/ecdsa_pkcs8.priv.pem
new file mode 100644
index 0000000..841b97f
--- /dev/null
+++ b/tests/testdata/ecdsa_pkcs8.priv.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgKksp+sxRTdMBUnSK
+KLCLQX28FV3zjUmrvs10gK1ZFnuhRANCAASmwId0fcOWQ6DnskzMDVquh5FEqLeV
+6SW9kHs7FOW7t2u82fmkDl0z/X3L2D2IZ/aaGpOg3qQAKkvgYCO26HGm
+-----END PRIVATE KEY-----
diff --git a/tests/testdata/ecdsa_sec1.priv.pem b/tests/testdata/ecdsa_sec1.priv.pem
new file mode 100644
index 0000000..fa126f8
--- /dev/null
+++ b/tests/testdata/ecdsa_sec1.priv.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEICpLKfrMUU3TAVJ0iiiwi0F9vBVd841Jq77NdICtWRZ7oAoGCCqGSM49
+AwEHoUQDQgAEpsCHdH3DlkOg57JMzA1aroeRRKi3leklvZB7OxTlu7drvNn5pA5d
+M/19y9g9iGf2mhqToN6kACpL4GAjtuhxpg==
+-----END EC PRIVATE KEY-----
\ No newline at end of file
diff --git a/tests/testdata/ecdsa_ssh.priv.pem b/tests/testdata/ecdsa_ssh.priv.pem
new file mode 100644
index 0000000..8add87c
--- /dev/null
+++ b/tests/testdata/ecdsa_ssh.priv.pem
@@ -0,0 +1,9 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
+1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSlsnz7VFcaNPliN2lduCBW01hecfUL
+zjqE83PaNl29sSQe08TZEa2C94Mw851NGvwSSmGWk5m6ky+nZnnoLoYMAAAAsHvkvOJ75L
+ziAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKWyfPtUVxo0+WI3
+aV24IFbTWF5x9QvOOoTzc9o2Xb2xJB7TxNkRrYL3gzDznU0a/BJKYZaTmbqTL6dmeeguhg
+wAAAAgUDmUuoD7DVc+Dr70WqNZgPj++GDr5nnowfXzt7vpG7IAAAAVcHN5bW9uZWFAQzAy
+RkwwOE5NTDdMAQID
+-----END OPENSSH PRIVATE KEY-----
diff --git a/tests/testdata/ecdsa_ssh.pub.pem b/tests/testdata/ecdsa_ssh.pub.pem
new file mode 100644
index 0000000..0a0104e
--- /dev/null
+++ b/tests/testdata/ecdsa_ssh.pub.pem
@@ -0,0 +1 @@
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKWyfPtUVxo0+WI3aV24IFbTWF5x9QvOOoTzc9o2Xb2xJB7TxNkRrYL3gzDznU0a/BJKYZaTmbqTL6dmeeguhgw= psymonea@C02FL08NML7L
diff --git a/tests/testdata/rsa_pkcs1.priv.pem b/tests/testdata/rsa_pkcs1.priv.pem
new file mode 100644
index 0000000..c007b10
--- /dev/null
+++ b/tests/testdata/rsa_pkcs1.priv.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAqDzr5t25wAd9qDnEEqwfLdGV5jTLbFRTQIP2rKIzqXGIqVnV
+ZWZwj1LOpJGVnzCCHQi60uHScouT0wLuqBXF7iGcw+STb2fWNXNUzohF1Dewp2MP
+rIK5OImF5TFzYwMdfK5W5EMSF4BpZ3P++yWsa4TPh5caN22fGBJpc8qYuDXqfB1C
+I6E7Fsz7TK2dBBGi665szd6iUReqcTI+yJH+QRVvUrwDE2RoKcMTFahZsZ5Zv+W1
+QaDcPq4lx4FEaWdBdVCp/qzZOfyNjjc9WNh5xTi/O4nXeLXFel66sTlnKp45dqmt
+fhZx8ttvZv4WxHdajcEYj9EdPWDK4gUfasog5wIDAQABAoIBAEslUxV+6k4symLO
+0paojRCxMexunoJXtAv4JcF8fejsjmdeeePd+t751NVLNfKx/xwq3w/80Dxbvf6d
+q64mc49nMheJzJURY2vihPnvgolFCsHpjIG4rjTjsIvsJ6cNKCmd0bAJiVY4BFyy
+Qi056abo3q2ov4wMieh9qN6QmuCEcsK9if0fcNqnkP8eLtjsV7hbgDQJzXgLAPDj
+VXoSg0lbZh0LOHDppr8KCgFn/g74OhuCxbqurEa6IttLAoRZKEu2uNhIYsl53MPp
+q2186OIj+5CMPS0W8PuJ9ipr4ObHZyg3759CGumSqAjx/UQdtV1IL+6JnqWakqL2
+vMKlyhkCgYEA3yvNJijkeS6kXUeANmD/kx/4fB/OWCZIry88WWF/VUwRTR4OT4cm
+L8gSJea7i2HUw4h+B8gzgelDZMnxVNS1jRjDwenoWJ8qwrs+GcAzUe/UZPVHvkq9
+CgyQXtKmUhC2stD/SZe85sjkU+iF8YBR7bFPbQK0PFYx9xQNkH4g+a0CgYEAwPxx
+eY6Cz8Iu3UuBUhxmj8ARnt0CFT4EiZ9o9E0OSv/IyL8jqXRimn9Up6VV+yhevIyX
+94Q3HXjOMyozAGvLoOwEKSnOgZ7T8QZ/GJEutx2PHpnUYfsiZxXffBMrC8Xi0lK7
+xLnClNkF3TR79OdroMOp8+c13LQQoLx9oCP4P2MCgYB4pg9kP9s0gDivjQYNX+cL
+PM9zGybMlPXab2jq0UCrdlIsJMGL0P6d+kWFY/Wj5qHFi7bGsj7WTqr2hA4J1GzJ
++Mdrv+6yamoNmHh8J2IXO9bRNaExiOol0qECAlOULiD3DvHUcUnYYma9zgkLhFnG
+bIMJ5dpWfCrK7nZe1TEyiQKBgQCPkwAFFE4jrO7aulLCuNhgt98kFn53OUV88bjO
+kAlDKNrC5tjsN+cn0/UyKCI4kYcxtVNV1OqAJaEalZmOBaRf21cZHL5C1twM4+1o
+ZJKhrv8MIBvOrVyh3rb+gvAyeQ1Ptjd1m1G1FWR0dpiF0inTV94309rRkLESNEkt
++7SzywKBgE6nJbK8YL30kyxqyz0pWB6CSfQEVCD+4nVpBlYrmiNpGDnfJOKW8tCW
+DexYna2ADOk54TU6kaRegPGKH1+FF6HMn20lUjqtQpu2mV3vbvVMcyj7ubz+Mc3H
+qE/XihloiUusYkcPi3+Ksrd/vatIBBFkTVH1TD16js7qK0GHzfo3
+-----END RSA PRIVATE KEY-----
\ No newline at end of file
diff --git a/tests/testdata/rsa_pkcs8.priv.pem b/tests/testdata/rsa_pkcs8.priv.pem
new file mode 100644
index 0000000..596fbbf
--- /dev/null
+++ b/tests/testdata/rsa_pkcs8.priv.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxOpNU1lFtNH3s
+3w1SUubV0s8bLJqYHX4NEGjJPmY8Htiy4aI2qmf2emM+mbUALyTY8vGajmnpcDH9
+KcEAY2b/yV9F53Z5C8Z4FCyWiYXKutO9vP+xTX75IGjfzMrOAJAGqCaYvIA3j/3+
+xpSy1FeEgrjGKiSt8i9SSYogbk2B4EqKQZJfzK9/bbPVTwJRbLqC9pqc0ZZLnp5a
+mVSTIrlqmzHEMHdUB6zY1YUflEvGSvjhirUwrc8xBO4heqGb2ptUAND/6oVUwEfw
+j7xKt2uG93yFMNyBNsAqz088dN+t1Ybsj4bRBhITKShlkzwl6BpsSAlx/NicjxMD
+6E/x1GARAgMBAAECggEAAKuwEwoclMU2FMdjTYRyyyxZDElG7HxwFaySOPC7gk67
+kzG3Y22RpyUfawU54h5LjWad82/GhtOd3M9jo5S8twsUCTevAxZAUgQBhzBOCU5b
+rsQgU5Nvf5HX08D6o3ztDplkS/+qnIs28tfdiC+1hRLZkCZorR/VfgI5O5YvROaK
+xCHVyZwGJb2cwVqd9Wbfo99/1CUejxAzXABzBA3lrBdXol2Mq/SAgKYm9xBnywIY
+G/wOSqIgZSooN6SZib8M5IkAmw2eRyLld0DKPnMQA8qYn0gqo+U8zzo55eS/SnCk
+ZWx0vBYFHyCgqafG3wgPXR8t7UDrHq0QCcr5xa3i4QKBgQDjDMVHXTqnrC3wAZLI
+vuunq4YJOR4fE+OpndLAWy02GsTZe5D5tXIiRXVXSUJe4Ffr6BCf1fIyAeAyZTY1
+JnLlcHCu3hpjNhLTzyDlSVd5ZsRFAm5FxbyEo6lLXHyzaA0HUEA2KxR3BTcITNAV
+YIhwCtdyFJOOyl86I1VX2SY1bwKBgQDH05MV5+0exxwn/axrGec5S/DgNU2T7rAy
+dseX0+t5AFag1+rOpaF0vg3/KYzpX99RBbGKUgsRh1j78RnqCXFfm2nLXXPrqdpA
+XQoyoQ7zTw2g7Uz95OTcFIfzPDTiyfs/iun9ghFkMU0uQZlRSpsg5xKbDAXOXmK5
+BsDWY1sCfwKBgCFwXA2qmVzgatOSJ8AQ/jvvcwogs2L4VutAJy3VP89cGem93Rgp
+tOl/OUzlqTS37br8rpYbuFPNGuvRJC6nvvwzlyTp6RD7gcJYGwwpxQxIKlfPh9YW
+zTDruZ8zu9ngVSriktJnfdgZmIVMasj7Mpztu9U9Wo4JGAVD9um9PXdZAoGBAIel
+kAsmzUg/UVW0Vf6+LsAuVO1eQbNSLDmVeBgQu6AAIs48xCBTPy7IdSfpRMaHVkjh
+3ItQ9kKH5lfgav78OgH0tfRfE/m963IVtn535nY0C8RaUhFn+BONvFvZWu04v117
+Jyv3x2aEMShdT35nbrb/JRorJyXX3JxNgUoHWBhxAoGAXBsrEEif9jF02GDpnDsv
+WSheFEFl+iC4g8Pwj0J/PvIMddFZ5tDUYX3IapYT2hXOrwTTy5E3QwPBpxk1eKDp
+Dn6xoM6+dlHPPWA6l48GJK8nmEpgmqemJXwIQ8ODZi2TDE3kWvnZiR3SuP+UJEdS
+aZYApzOejZbQzdygUp7Xeg4=
+-----END PRIVATE KEY-----
\ No newline at end of file
diff --git a/tests/testdata/rsa_ssh.priv.pem b/tests/testdata/rsa_ssh.priv.pem
new file mode 100644
index 0000000..5f0fa10
--- /dev/null
+++ b/tests/testdata/rsa_ssh.priv.pem
@@ -0,0 +1,38 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+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
+-----END OPENSSH PRIVATE KEY-----
diff --git a/tests/testdata/rsa_ssh.pub.pem b/tests/testdata/rsa_ssh.pub.pem
new file mode 100644
index 0000000..e2312dc
--- /dev/null
+++ b/tests/testdata/rsa_ssh.pub.pem
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC080Ej8WwYjBebXZrYbfuWDHj1n5T4JU8yMitmZP3May45YN5erWLnJEtSPbYoDo3wpM0MmuCvNXTsPUaBV3o5w0VwAa9w8J6e0QaMOzQ85i/4UxaestJTWMWiS2OqBsHd40o67eANtxnwNiAJWlN4Eh9RH2kMe19cy4ImM5DH4MTq3Q6gLlwnwPhKcRoIxcdpmC4QghXHDcDqYSG3puCwLRmSupKrMhBtxT6bvKnLzJkLnxr/EWyM+hQ4uDEBCopxF2mvKg4rwjckvAtycyO34e0dTNZswM033AVvsjSvqAzgOg3pNATasTbjWLA+Ef6y/atct8Z1FVHHLVan70Xn271hL8udYpfzzLL4Fi3WvDIyQ+1/kQp6W2N3ZesmDkQhfUC5DTKy2gzNhHSJAgpVohhXOEZGrgtMjq1E+oYv6pRhIoyxhN3wTsYIjY2ZN98eeAMuz8Y7jVUc/4xVHH8IQPYjxD1/KfWogRcTIC/ewSjXAFrMZEBme2jixqX6Eus= psymonea@C02FL08NML7L