SpanKey - SpanKey.Key_Export
The SpanKey.Key_Export method is used to export the generated PEM-encoded private key for use with OpenSSH or PuTTY.
The only required parameter is the privkey that you want to export.
The optional parameters are the format of the key and its password. The output format must be PEM (OpenSSH) or PPK (PuTTY) and defaults to PEM. The PPK format is currently supported for RSA keys only. If the password parameter is set then the private key is exported encrypted.
This method returns the formatted private key on success and false on error.
import requests
import json
# Define the method and parameters
method = 'SpanKey.Key_Export'
params = {
'privkey': '-----BEGIN PRIVATE KEY-----
MIICXAIBAAKBgQDEFAKEP7exempleFICTIFqwerty1234567890azerty
blablablablablablablablablablablablablablablablablablab
Y2hhbmdlLW1vaS1jaS1lc3QtdW5lLWNsZS1pbmFjdGl2ZQo=
-----END PRIVATE KEY-----',
'format': 'PEM',
'password': 'Password123!'
}
# Create the request payload
request_payload = {
'jsonrpc': "2.0",
'method': method,
'params': params,
'id': 0
}
# Convert payload to JSON
json_payload = json.dumps(request_payload)
# Define the URL and credentials
url = "https://webadm1.rcdevsdocs.com/manag/"
auth = ("RCDEVSDOCS\\administrator", "password")
# Define the headers
headers = {
"Content-Type": "application/json",
"Connection": "close"
}
# Make the POST request
response = requests.post(url, data=json_payload, headers=headers, auth=auth, verify=False)
# Print the HTTP response code and response content
print(f"HTTP response code: {response.status_code}")
print(response.json())
<?php
$method = 'SpanKey.Key_Export';
$params = array(
'privkey' => '-----BEGIN PRIVATE KEY-----
MIICXAIBAAKBgQDEFAKEP7exempleFICTIFqwerty1234567890azerty
blablablablablablablablablablablablablablablablablablab
Y2hhbmdlLW1vaS1jaS1lc3QtdW5lLWNsZS1pbmFjdGl2ZQo=
-----END PRIVATE KEY-----',
'format' => 'PEM',
'password' => 'Password123!'
);
$request = array(
'jsonrpc' => "2.0",
'method' => $method,
'params' => $params,
'id' => 0
);
$json = json_encode($request);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://webadm1.rcdevsdocs.com/manag/");
curl_setopt($ch, CURLOPT_USERPWD, "RCDEVSDOCS\\administrator:password");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("connection: close"));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$out = curl_exec($ch);
curl_close($ch);
print_r(json_decode($out));
?>
# Define the method and parameters
$method = 'SpanKey.Key_Export'
$params = @{
privkey = '-----BEGIN PRIVATE KEY-----
MIICXAIBAAKBgQDEFAKEP7exempleFICTIFqwerty1234567890azerty
blablablablablablablablablablablablablablablablablablab
Y2hhbmdlLW1vaS1jaS1lc3QtdW5lLWNsZS1pbmFjdGl2ZQo=
-----END PRIVATE KEY-----'
format = 'PEM'
password = 'Password123!'
}
# Create the request payload
$requestPayload = @{
'jsonrpc' = '2.0'
'method' = $method
'params' = $params
'id' = 0
}
# Convert the request payload to JSON
$jsonPayload = $requestPayload | ConvertTo-Json
# Define the URL and credentials
$url = "https://webadm1.rcdevsdocs.com/manag/"
$auth = "RCDEVSDOCS\administrator:password"
# Make the POST request
$response = Invoke-RestMethod -Uri $url -Method Post -Body $jsonPayload -Headers @{ "Content-Type" = "application/json" } -Credential (New-Object System.Management.Automation.PSCredential($auth, (ConvertTo-SecureString "password" -AsPlainText -Force))) -SkipCertificateCheck
# Output the response
Write-Host "HTTP Response Code: $($response.status_code)"
Write-Host $response | ConvertTo-Json