CORE REST API v2.0.2112
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Introduction
Unbound Key Control ("UKC") supports a complete set of REST API for all UKC operations, including user, client and key management, cluster and partition management, backup automation, and crypto operations.
- To download the YAML version of the REST API, click here.
- To download a JavaScript sample for the REST API, click here.
UKC at a Glance
Unbound Key Control ("UKC") is an enterprise cryptography orchestration platform, offering secure key management, key storage and key-based services. It is a scalable multi-site and multi-cloud solution that works hand-in-hand with hardware security capabilities while leveraging its own FIPS certified vHSM (virtual hardware security module).
UKC has many use-cases, including tokenization, code signing, and virtual machine, database, and storage encryption.
Some notable features of UKC are:
- It supports all standard RSA, ECC, and symmetric keys while remaining transparent to the application.
- It supports standard crypto-API’s: KMIP, PKCS#11, OpenSSL, KSP and CSP.
- It is platform agnostic and supports cloud vendors, including but not limited to AWS, Azure, and GCP.
- Its installation does not disrupt the existing workflow of applications.
- It provides lifecycle management of crypto-keys including partitioning, BYOK (Bring Your Own Key), generation, renewal, archiving, and revocation.
UKC Documentation
In addition to this API reference, the following documents are available:
- UKC Release Notes
- UKC User's Guide
- UKC Integration Guide
- UKC Code Signing Guide
- UKC Developer's Guide
UKC API Overview
Authentication Types
Most UKC API operations require an authorization context and user permissions. Users are identified by an authentication token attached to the request headers.
Basic Authentication
UKC supports the basic authentication scheme. The "Basic" HTTP authentication scheme is defined in RFC 7617, which transmits credentials as user/password pairs, encoded using base64 in the HTTP Authorization header.
The user ID can include the required partition in the format:
username@partitionId:password
Note: If any of the above strings include the '%' character, it must be replaced with '%25'. Otherwise, you will receive "Authentication format error".
For example, instead of
my-name@my-partition:my-pa%%word
use
my-name@my-partition:my-pa%25%25word
For further reference see: https://en.wikipedia.org/wiki/Percent-encoding
Authentication Token
The system can authenticate the user with a generated authentication token, which is valid for a limited time. This token eliminates the need to transmit the username/password on every request. See Get OAuth authentication token for more information.
Authentication with a Certificate
The client can authenticate with the UKC using a client certificate. This method can be useful to either add another layer of security or when you do not desire to use a username and password.
To get a token, call Get OAuth authentication token with a client certificate. Then use the returned token for subsequent calls.
Authentication Failure (unauthorized)
If an operation is unauthorized, an HTTP 401 status code is returned with
the WWW-Authenticate
header.
API Key (Authorization)
Parameter Name: Authorization, in: header.
For accessing the API a valid JWT token must be passed in all the queries in the 'Authorization' header. A valid JWT token is generated by the API and returned as answer of a call to the route /login giving a valid user and password. The following syntax must be used in the 'Authorization' header : Bearer: xxxxxx.yyyyyyy.zzzzzz
Partitioning
UKC objects are organized into partitions. Partitioning allows namespacing and access control to objects by configuring users with roles per partition.
The objects contained in a partition are:
Users, Clients, Keys, Certificates, and Secrets. The Root partition may also contain other partitions.
Permissions
Any partition can have many users who can access its objects.
A partition user can have one of two security roles:
-
so - Security Officer. Can perform all operations on the partition objects including administration: adding, modifying and deleting objects.
-
user - Can only perform cryptographic operations with the partition objects, such as sign and verify, and can also create, manage, and edit keys, certificates and secrets.
Root Partition
The default built-in partition for an UKC cluster is called root
and is
created automatically when setting up a new UKC cluster.
Partition Hierarchy
-
Parent partition - The root partition is the parent of all partitions.
-
Permission inheritance - User access permissions can be configured to be inherited from the root partition. For example, a user
userA
, which is an SO on root, would also have SO permissions onpartitionB
.- Note: By default, access permissions are not inherited from the root partition. To use permission inheritance, it should be configured explicitly.
Object IDs
Many operations require an object ID as part of the resource URI. Object IDs can be one of the following:
- Keys - refer to keys using the UID, which is unique in the partition. You can also use the name, but it may not be unique. Operations using a name that is not unique will fail.
- All other objects - refer to the object by name, which is unique.
Quorum
The UKC can be configured to require quorum approval for certain operations. In case the operation you are executing requires it, the http result would be 202 (ACCEPTED) and a quorum job object.
Use the jobs
API in order to manage approvals for different jobs.
Error Handling
Responses are formatted in the standard REST format, with a fields showing information about the error. The possible error codes are described with each API.
For example, here is a token request:
https:///api/v1/token
The error that is received is shown on the right.
{
"type": "UNAUTHORIZED",
"title": "Login failed due to wrong username, password or missing certificate",
"details": "Login failed due to wrong username, password or missing certificate",
"status": "UNAUTHORIZED",
"message": "Login failed due to wrong username, password or missing certificate"
}
Authorization
- API Key (Authorization)
- Parameter Name: Authorization, in: header. For accessing the API a valid JWT token must be passed in all the queries in the 'Authorization' header. A valid JWT token is generated by the API and returned as answer of a call to the route /login giving a valid user and password. The following syntax must be used in the 'Authorization' header : Bearer: xxxxxx.yyyyyyy.zzzzzz
Authentication
Get OAuth authentication token
Code samples
const inputBody = '{
"grant_type": "string",
"username": "string",
"password": "string",
"refresh_token": "string",
"assertion": "string",
"id_token": "string",
"code": "string",
"otp": "string",
"redirect_uri": "string",
"idp_id": "string",
"partition_id": "string"
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'application/json'
};
fetch('/api/v1/token',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json'
POST /api/v1/token
Returns an OAuth authentication token which can be used in future calls for authentication.
Body parameter
grant_type: string
username: string
password: string
refresh_token: string
assertion: string
id_token: string
code: string
otp: string
redirect_uri: string
idp_id: string
partition_id: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | false | none |
» grant_type | body | string | true | Grant type |
» username | body | string | false | The username |
» password | body | string | false | Password |
» refresh_token | body | string | false | Refresh token |
» assertion | body | string | false | Assertion |
» id_token | body | string | false | ID Token |
» code | body | string | false | Authorization Code |
» otp | body | string | false | One time password |
» redirect_uri | body | string | false | Redirect URI |
» idp_id | body | string | false | Identity Provider ID |
» partition_id | body | string | false | Partition ID |
Example responses
200 Response
{
"access_token": "eyJ...MoQ",
"token_type": "bearer",
"expires_at": "string",
"expires_in": 1000,
"scope": "user",
"refresh_token": "eyJ...0N"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | OauthToken |
401 | Unauthorized | Authentication failure, the system could not verify the user name and password passed in the request header | None |
Revoke all tokens for a user
Code samples
const inputBody = '{
"token": "string"
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded'
};
fetch('/api/v1/token/revoke',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/token/revoke \
-H 'Content-Type: application/x-www-form-urlencoded'
POST /api/v1/token/revoke
Revoke all tokens related to given authentication.
Body parameter
token: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | false | none |
» token | body | string | true | token |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
401 | Unauthorized | Authentication failure, the system could not verify the user name and password passed in the request header | None |
Get token (deprecated)
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/authToken',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/authToken \
-H 'Accept: application/json'
GET /api/v1/authToken
Returns an authentication token which can be used in future calls for authentication. The user credentials are provided in the HTTP headers.
Note: This endpoint is deprecated. Use Get OAuth authentication token instead.
Example responses
200 Response
{
"value": "eyJraWQiOiIweDAwMGNhZGQ5ODZiNWMwYTM5NCIsImFsZyI6IkVTMjU2In0.eyJzdWIiOiJzb0BhenVyZSIsIm9yaWciOiIxMjcuMC4wLjEiLCJpc3MiOiJVTkJPVU5EIiwiaXNfcmVmcmVzaCI6ZmFsc2UsImV4cCI6MTU4MjQ0OTczNSwiaWF0IjoxNTgyNDQ3OTM1LCJqdGkiOiI5YWE0YjhiYi1kMGM4LTQxODEtYjhlMC0zYWQ4ODkzYjg1ZjcifQ.jqwC3O4XuIb678uVsBkWh-bBpvumnEIoFtde-xdBcF9CpUnqC1FURw6dpDeIb9TZvIzXDsjusucwv-JjjYbUYA"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Token |
401 | Unauthorized | Authentication failure, the system could not verify the user name and password passed in the request header | None |
Revoke token (deprecated)
Code samples
fetch('/api/v1/authToken',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/authToken
DELETE /api/v1/authToken
Invalidates an authentication token
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
401 | Unauthorized | Authentication failure, the system could not verify the user name and password passed in the request header | None |
Change password
Code samples
const inputBody = '{
"existingPassword": "string",
"newPassword": "string",
"otp": "815713"
}';
const headers = {
'Content-Type':'application/json'
};
fetch('/api/v1/me/password',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/me/password \
-H 'Content-Type: application/json'
PUT /api/v1/me/password
Change the password for the current user. The current user credentials are provided in the HTTP headers. Could be either password or JWT token.
Body parameter
{
"existingPassword": "string",
"newPassword": "string",
"otp": "815713"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | NewAndExistingPassword | false | New and existing password |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Password changed successfully | None |
400 | Bad Request | New password does not comply with password policy rules | None |
Get oauth keys
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/auth/keys',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/auth/keys \
-H 'Accept: application/json'
GET /api/v1/auth/keys
Get oauth keys,
Example responses
200 Response
[
{
"kid": "0x0083a3c96dd563b329",
"x": "7KTOg6UAP99GsQF43UyxPEjrUKk68Dwo+npP6XrIbBg=",
"y": "tpMGf3UQo/80J+15J10n63NpPoeBowMODj9e1hIyTF4=",
"crv": "P_256",
"use": "sig",
"kty": "EC",
"alg": "ES256"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [JWKSKey] | false | none | none |
» kid | string | false | none | Key Id |
» x | string | false | none | X |
» y | string | false | none | Y |
» crv | string | false | read-only | Curve |
» use | string | false | read-only | Usage |
» kty | string | false | read-only | Key Type |
» alg | string | false | read-only | Algorithm |
Backup
Backup database
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/backup',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/backup \
-H 'Accept: application/json'
POST /api/v1/backup
Perform a database backup
Example responses
200 Response
{
"id": "string",
"state": "IN_PROGRESS",
"error": "string",
"date": "string",
"file": "string",
"pairHostnames": [
"string"
],
"version": "string",
"digestDiff": {
"diffRecords": [
{
"sectionDiff": "string",
"entriesDiff": [
{
"objectType": "string",
"digestSource": "string",
"uid": "string",
"name": "string",
"partitionId": "string",
"partitionName": "string",
"version": "string",
"detail": "string",
"object type": "string",
"digest source": "string",
"partition id": "string",
"partition name": "string"
}
]
}
]
},
"alertLevel": "WARN"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Backup request received | DbBackup |
202 | Accepted | ACCEPTED | Job |
List backups
Code samples
const headers = {
'Accept':'*/*'
};
fetch('/api/v1/backup',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/backup \
-H 'Accept: */*'
GET /api/v1/backup
List all backup items
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
from | query | string | false | from |
to | query | string | false | to |
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | DbBackupListResponse |
Get backup information
Code samples
const headers = {
'Accept':'*/*'
};
fetch('/api/v1/backup/{backupId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/backup/{backupId} \
-H 'Accept: */*'
GET /api/v1/backup/{backupId}
Get database backup information
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
backupId | path | string | true | Backup ID |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | DbBackup |
Delete backup
Code samples
const headers = {
'Accept':'*/*'
};
fetch('/api/v1/backup/{backupId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/backup/{backupId} \
-H 'Accept: */*'
DELETE /api/v1/backup/{backupId}
Delete a backup record in the database.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
backupId | path | string | true | Backup ID |
Example responses
202 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Get backup alerts summary
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/backup/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/backup/alerts \
-H 'Accept: application/json'
GET /api/v1/backup/alerts
Get backup alerts summary
Example responses
200 Response
{
"category": "CLIENTS",
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"counter": 0,
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | AlertsSummary |
Check for backup alert
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/backup/{backupId}/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/backup/{backupId}/alerts \
-H 'Accept: application/json'
GET /api/v1/backup/{backupId}/alerts
Get alerts from a backup. Returns an alert if backup digest test fails.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
backupId | path | string | true | Backup ID |
Example responses
200 Response
{
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Alert |
Clients
Create a client
Code samples
const inputBody = '{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"activationCodeValidity": 20,
"isTemplate": false,
"persistentClient": true,
"activationCodeLength": 10,
"ipRange": "0.0.0.0/0",
"certificateExpiration": 1578240
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/clients',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/clients \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/clients
Creates a new client and returns the activation code.
Body parameter
{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"activationCodeValidity": 20,
"isTemplate": false,
"persistentClient": true,
"activationCodeLength": 10,
"ipRange": "0.0.0.0/0",
"certificateExpiration": 1578240
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewClient | false | New Client |
Example responses
200 Response
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | Client |
201 | Created | New client created successfully | Client |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exists | None |
Create client with certificate (JSON)
Code samples
const inputBody = '{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json,application/x-pkcs12,application/x-x509-user-cert'
};
fetch('/api/v1/clients/with-cert',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/clients/with-cert \
-H 'Content-Type: application/json' \
-H 'Accept: application/json,application/x-pkcs12,application/x-x509-user-cert'
POST /api/v1/clients/with-cert
Creates a new client and returns the certificate. It uses CSR or public key material in JSON format.
Body parameter
{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewClientWithCertificate | false | New Client |
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | string |
201 | Created | New client created successfully | None |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exists | None |
Create client with certificate (DER)
Code samples
const inputBody = '{
"file": "string",
"newClientWithCertificate": "string"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json,application/x-pkcs12,application/x-x509-user-cert'
};
fetch('/api/v1/clients/with-cert-file',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/clients/with-cert-file \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json,application/x-pkcs12,application/x-x509-user-cert'
POST /api/v1/clients/with-cert-file
Creates a new client and returns the certificate. It uses FS description of the certificate.
Body parameter
file: string
newClientWithCertificate: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | object | false | none |
» file | body | string(binary) | true | key file |
» newClientWithCertificate | body | string | false | the new client |
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | string |
201 | Created | New client created successfully | None |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exists | None |
Create a client with secret
Code samples
const inputBody = '{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"ipRange": "0.0.0.0/0",
"grantTypes": [
"CLIENT_CREDENTIALS"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/clients/with-secret',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/clients/with-secret \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/clients/with-secret
Creates a new client and returns the secret.
Body parameter
{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"ipRange": "0.0.0.0/0",
"grantTypes": [
"CLIENT_CREDENTIALS"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewClientWithSecret | false | New Client |
Example responses
200 Response
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | Client |
201 | Created | New client created successfully | None |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exists | None |
List clients
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/clients',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/clients \
-H 'Accept: application/json'
GET /api/v1/clients
Return a list of clients.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | Skip |
detailed | query | boolean | false | Detailed |
template | query | string | false | Template |
activationCodeExpiry | query | integer(int32) | false | Search activation codes that expire within N days |
filter | query | string | false | Pagination filter |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: NAME, STATUS, TYPE, EXPIRY_AT, UPDATED_AT, CREATED_AT, ACTIVATION_CODE_EXPIRY |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ClientListResponse |
Get client details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/clients/{clientId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/clients/{clientId} \
-H 'Accept: application/json'
GET /api/v1/clients/{clientId}
Return details of a client.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
clientId | path | string | true | Client ID |
partitionId | query | string | false | Partition ID |
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Client |
Update client details
Code samples
const inputBody = '{
"checkIp": false,
"allowNat": false,
"ipRange": "0.0.0.0/0"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/clients/{clientId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/clients/{clientId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/clients/{clientId}
Update client properties.
Body parameter
{
"checkIp": false,
"allowNat": false,
"ipRange": "0.0.0.0/0"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
clientId | path | string | true | Client ID |
partitionId | query | string | false | Partition ID |
body | body | ClientsUpdates | false | Clients updates |
Example responses
200 Response
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Client Updated successfully. | Client |
202 | Accepted | ACCEPTED | Job |
Delete a client
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/clients/{clientId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/clients/{clientId} \
-H 'Accept: application/json'
DELETE /api/v1/clients/{clientId}
Delete the specified client.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
clientId | path | string | true | Client ID |
partitionId | query | string | false | Partition ID |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Client deleted successfully. | None |
202 | Accepted | ACCEPTED | Job |
Refresh activation code
Code samples
const inputBody = '{
"certificateExpiration": 1578240,
"activationCodeValidity": 20,
"activationCodeLength": 10,
"ipRange": "0.0.0.0/0",
"generateNewActivationCode": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/clients/{clientId}/activation-code',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/clients/{clientId}/activation-code \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/clients/{clientId}/activation-code
Refresh the client's activation code.
Body parameter
{
"certificateExpiration": 1578240,
"activationCodeValidity": 20,
"activationCodeLength": 10,
"ipRange": "0.0.0.0/0",
"generateNewActivationCode": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
clientId | path | string | true | Client ID |
partitionId | query | string | false | Partition ID |
body | body | RefreshedCertificateClient | false | Refreshed values |
Example responses
200 Response
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Activation code Refreshed successfully. | Client |
202 | Accepted | ACCEPTED | Job |
Refresh client public key
Code samples
const inputBody = '{
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"expiration": 1578240,
"alternativeNames": "{client-ip,client-name}"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/clients/{clientId}/publicKey',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/clients/{clientId}/publicKey \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/clients/{clientId}/publicKey
Refresh client public key.
Body parameter
{
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"expiration": 1578240,
"alternativeNames": "{client-ip,client-name}"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
clientId | path | string | true | Client ID |
partitionId | query | string | false | Partition ID |
body | body | RefreshedPublicKeyClient | false | Refreshed values |
Example responses
200 Response
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Secret Refreshed successfully. | Client |
202 | Accepted | ACCEPTED | Job |
Refresh client secret
Code samples
const inputBody = '{
"expiration": 1578240,
"grantTypes": [
"CLIENT_CREDENTIALS"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/clients/{clientId}/secret',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/clients/{clientId}/secret \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/clients/{clientId}/secret
Refresh client secret
Body parameter
{
"expiration": 1578240,
"grantTypes": [
"CLIENT_CREDENTIALS"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
clientId | path | string | true | Client ID |
partitionId | query | string | false | Partition ID |
body | body | RefreshedSecretClient | false | Refreshed values |
Example responses
200 Response
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Secret Refreshed successfully. | Client |
202 | Accepted | ACCEPTED | Job |
Get client alert summary
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/clients/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/clients/alerts \
-H 'Accept: application/json'
GET /api/v1/clients/alerts
Get a summary of the client alerts.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"category": "CLIENTS",
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"counter": 0,
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | AlertsSummary |
Get alerts for a specific client
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/clients/{clientId}/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/clients/{clientId}/alerts \
-H 'Accept: application/json'
GET /api/v1/clients/{clientId}/alerts
Return the alerts for a specific client.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
clientId | path | string | true | Client ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Alert |
Cryptography
Encrypt clear text
Code samples
const inputBody = '{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"clearText": "string",
"dataEncoding": "PLAIN"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/encrypt',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/encrypt \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/encrypt
Encrypt clear text into cipher text with an existing key. Parameters allow selecting padding mode and encryption mode.
Body parameter
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"clearText": "string",
"dataEncoding": "PLAIN"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Id of the Key used for encryption |
body | body | EncryptData | false | Data to encrypt |
Example responses
200 Response
{
"cipherTextBase64": "string",
"ivBase64": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Cipher |
202 | Accepted | ACCEPTED | Job |
Encrypt multiple values
Code samples
const inputBody = '{
"clearTextItems": [
"string"
],
"dataEncoding": "PLAIN",
"params": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/encryptx',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/encryptx \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/encryptx
Encryption is done using the key. Parameters allow selecting padding mode and encryption mode.
Body parameter
{
"clearTextItems": [
"string"
],
"dataEncoding": "PLAIN",
"params": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key used for encryption |
body | body | Encryptx | false | Object containing a list of plaintexts that you want to encrypt. |
Example responses
200 Response
[
{
"cipherTextBase64": "string",
"ivBase64": "string"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Cipher] | false | none | [Includes encrypted data] |
» cipherTextBase64 | string | true | none | base64 encoded encrypted data |
» ivBase64 | string | false | none | base64 encoded Initialize Vector |
Decrypt a value
Code samples
const inputBody = '{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"cipher": {
"cipherTextBase64": "string",
"ivBase64": "string"
},
"outputEncoding": "PLAIN"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/decrypt',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/decrypt \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/decrypt
Decrypt a value using the key. The same parameters for encryption are supported for decryption.
Body parameter
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"cipher": {
"cipherTextBase64": "string",
"ivBase64": "string"
},
"outputEncoding": "PLAIN"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | The key used for decryption |
body | body | DecryptData | false | Data to decrypt |
Example responses
200 Response
{
"clearText": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK. Returns clear text encoded according to request parameters | ClearText |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | Authentication encryption failure | None |
Decrypt multiple values
Code samples
const inputBody = '{
"encrypted": [
{
"cipherTextBase64": "string",
"ivBase64": "string"
}
],
"params": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"outputEncoding": "PLAIN"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/decryptx',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/decryptx \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/decryptx
Decryption is done using the key. The same parameters for encryption are supported for decryption.
Body parameter
{
"encrypted": [
{
"cipherTextBase64": "string",
"ivBase64": "string"
}
],
"params": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"outputEncoding": "PLAIN"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | The key used for decryption |
body | body | Decryptx | false | Object containing a list of ciphertexts that you want to decrypt. |
Example responses
200 Response
[
{
"clearText": "string"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array of decrypted values with requested encoding | Inline |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | Authentication encryption failure | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ClearText] | false | none | none |
» clearText | string | false | none | clearText |
Seal clear text
Code samples
const inputBody = '{
"clearText": "string",
"dataEncoding": "PLAIN"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/seal',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/seal \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/seal
Seal clear text into cipher text with an existing key. Encryption is done exactly as encryption with a certificate.
Body parameter
{
"clearText": "string",
"dataEncoding": "PLAIN"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Id of the Key used for encryption |
body | body | SealData | false | Data to seal |
Example responses
200 Response
{
"value": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | SealedCipher |
202 | Accepted | ACCEPTED | Job |
Unseal a value
Code samples
const inputBody = '{
"cipher": {
"value": "string"
},
"outputEncoding": "PLAIN"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/unseal',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/unseal \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/unseal
Unseal a value using the key. The same parameters for encryption are supported for decryption.
Body parameter
{
"cipher": {
"value": "string"
},
"outputEncoding": "PLAIN"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | The key used for decryption |
body | body | UnSealData | false | Data to un-seal |
Example responses
200 Response
{
"clearText": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK. Returns clear text encoded according to request parameters | ClearText |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | Authentication encryption failure | None |
Wrap and export key
Code samples
const inputBody = '{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"wrappedKeyId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/wrap',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/wrap \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/wrap
Wrap and export a key with an existing key.
Body parameter
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"wrappedKeyId": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key used for wrapping |
body | body | WrapData | false | Wrap data |
Example responses
200 Response
{
"cipherTextBase64": "string",
"ivBase64": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Cipher |
202 | Accepted | ACCEPTED | Job |
Unwrap and import key
Code samples
const inputBody = '{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"keyData": "string",
"newGeneratedKey": {
"policyKeyId": "string",
"keyId": "string",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/unwrap',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/unwrap \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/unwrap
Unwrap and import a new key.
Note: The response data depends on the key type and other factors. It includes only those attributes that are relevant to the requested key type.
Body parameter
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"keyData": "string",
"newGeneratedKey": {
"policyKeyId": "string",
"keyId": "string",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | The key used for unwrapping |
body | body | UnwrapData | false | UnWrap Data |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | New key created added successfully | None |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | Authentication encryption failure | None |
409 | Conflict | Key with this ID already exist | None |
Derive a new key
Code samples
const inputBody = '{
"data": "string",
"dataEncoding": "PLAIN",
"size": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/derive-key',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/derive-key \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/derive-key
Derive a new key and return it without storing it.
Note: The response data depends on the key type and other factors. It includes only those attributes that are relevant to the requested key type.
Body parameter
{
"data": "string",
"dataEncoding": "PLAIN",
"size": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | The key used for derive |
body | body | DeriveKeyData | false | Derivation data |
Example responses
201 Response
{
"keyData": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | New key derived successfully | Key |
202 | Accepted | ACCEPTED | Job |
Derive and store a new key
Code samples
const inputBody = '{
"bipDerivationParams": {
"childNumber": 0,
"hardened": true
},
"policyKeyId": "string",
"newGeneratedKey": {
"policyKeyId": "string",
"keyId": "string",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
},
"derivationMode": "CONCAT",
"hash": "SHA1",
"slipDerivationParams": {
"childNumber": 0,
"hardened": true
},
"concatDerivationParams": {
"data": "string",
"isPrefix": true
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/derive',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/derive \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/derive
Derive a new key and store it in UKC.
Note: The response data depends on the key type and other factors. It includes only those attributes that are relevant to the requested key type.
Body parameter
{
"bipDerivationParams": {
"childNumber": 0,
"hardened": true
},
"policyKeyId": "string",
"newGeneratedKey": {
"policyKeyId": "string",
"keyId": "string",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
},
"derivationMode": "CONCAT",
"hash": "SHA1",
"slipDerivationParams": {
"childNumber": 0,
"hardened": true
},
"concatDerivationParams": {
"data": "string",
"isPrefix": true
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | The key used for derive |
body | body | DeriveData | false | Derivation data |
Example responses
201 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | New key derived successfully | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Create MAC for a message
Code samples
const inputBody = '{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"mode": "GMAC",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 0
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/mac',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/mac \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/mac
Generate a Message Authentication Code (MAC) for a message. MAC mode is provided as a parameter.
Body parameter
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"mode": "GMAC",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 0
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key used for MAC |
body | body | MACSignData | false | Mac Data |
Example responses
200 Response
{
"mac": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzMjM0MjM0MzQyIGRmIGFzZGZhIDMz",
"ivBase64": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK. Returns the generated Message Authentication Code | Mac |
202 | Accepted | ACCEPTED | Job |
Verify MAC
Code samples
const inputBody = '{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"mode": "GMAC",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 0
},
"mac": {
"mac": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzMjM0MjM0MzQyIGRmIGFzZGZhIDMz",
"ivBase64": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/macVerify',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/macVerify \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/macVerify
Verifies a MAC value. Supports the same parameters as the MAC option.
Body parameter
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"mode": "GMAC",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 0
},
"mac": {
"mac": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzMjM0MjM0MzQyIGRmIGFzZGZhIDMz",
"ivBase64": "string"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key used for verification |
body | body | MACVerifyData | false | Mac Verify Data |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK. Verified Successfully | None |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | Verification failed | None |
Sign a message
Code samples
const inputBody = '{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"doHash": true,
"ecdsaMode": "ECDSA",
"paillierKey": "string",
"totsSignData": {
"challengeResponse": "string",
"totsParams": {
"index": 0,
"nof": 1
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/sign',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/sign \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/sign
Hash and sign a given message. If requested, it can also assume the input is a hash value and just sign it. Different modes are supported as parameters and the output can be either a raw signature or PKCS7, based on request.
Body parameter
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"doHash": true,
"ecdsaMode": "ECDSA",
"paillierKey": "string",
"totsSignData": {
"challengeResponse": "string",
"totsParams": {
"index": 0,
"nof": 1
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key used for signing |
body | body | SignData | false | Data that needs to be signed. |
Example responses
200 Response
{
"signature": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzIGRmIGFzZGZhIHNkZmFzZGZhc2Q="
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Signature |
202 | Accepted | ACCEPTED | Job |
Verify a signature
Code samples
const inputBody = '{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"doHash": true,
"signature": {
"signature": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzIGRmIGFzZGZhIHNkZmFzZGZhc2Q="
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/verify',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/verify \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/verify
Verifies a signature value. Supports the same parameters as the sign option.
Body parameter
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"doHash": true,
"signature": {
"signature": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzIGRmIGFzZGZhIHNkZmFzZGZhc2Q="
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Certificate used for verification |
body | body | VerifyData | false | Data with a signature that needs to be verified. |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK. Signature verified successfully | None |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | Verification failed | None |
Generate TOTS offline challenge
Code samples
const inputBody = '{
"paillierKey": "string",
"message": "string",
"dataEncoding": "PLAIN",
"totsParams": {
"index": 0,
"nof": 1
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/challenge',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/challenge \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/challenge
Generate TOTS challenge for getPublic and TOTS sign operations. Relevant for TOTS offline keys
Body parameter
{
"paillierKey": "string",
"message": "string",
"dataEncoding": "PLAIN",
"totsParams": {
"index": 0,
"nof": 1
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key used for signing |
body | body | TOTSChallengeData | false | Data used to generate TOTS challenge |
Example responses
200 Response
{
"value": "example"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Challenge |
202 | Accepted | ACCEPTED | Job |
Tokenize data
Code samples
const inputBody = '{
"value": "string",
"tweak": "string",
"dataType": "EMAIL",
"format": "string",
"maxSize": 40
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/tokenize',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/tokenize \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/tokenize
Tokenize single items with a PRF key.
Body parameter
{
"value": "string",
"tweak": "string",
"dataType": "EMAIL",
"format": "string",
"maxSize": 40
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition name with a PRF key. |
keyId | path | string | true | PRF key UID designated for tokenization. |
body | body | TokenizeData | false | The tokenization parameters in JSON. |
Example responses
200 Response
{
"uid": "string",
"tweak": "string",
"value": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | TokenizeResponse |
202 | Accepted | ACCEPTED | Job |
Tokenize multiple values
Code samples
const inputBody = '{
"valueItems": [
"string"
],
"tweak": "string",
"dataType": "EMAIL",
"format": "string",
"maxSize": 40
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/tokenizex',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/tokenizex \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/tokenizex
Tokenize multiple items with a PRF key.
Body parameter
{
"valueItems": [
"string"
],
"tweak": "string",
"dataType": "EMAIL",
"format": "string",
"maxSize": 40
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition name with a PRF key. |
keyId | path | string | true | PRF key UID designated for tokenization. |
body | body | TokenizeX | false | The tokenization parameters in JSON. |
Example responses
200 Response
[
{
"uid": "string",
"tweak": "string",
"value": "string"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
202 | Accepted | ACCEPTED | Job |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [TokenizeResponse] | false | none | none |
» uid | string | true | none | PRF key UID. |
» tweak | string | true | none | Tokenized tweak. |
» value | string | true | none | Array of tokenized values. |
Detokenize data
Code samples
const inputBody = '{
"value": "string",
"tweak": "string",
"dataType": "EMAIL",
"format": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/detokenize',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/detokenize \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/detokenize
Detokenize single items with an existing PRF key. Detokenization uses the values and parameters provided in the JSON output of the tokenized data.
Body parameter
{
"value": "string",
"tweak": "string",
"dataType": "EMAIL",
"format": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition name with a PRF key. |
keyId | path | string | true | PRF key UID used for detokenization. |
body | body | DetokenizeData | false | The tokenization parameters in JSON. |
Example responses
200 Response
{
"uid": "string",
"tweak": "string",
"value": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | DetokenizeResponse |
202 | Accepted | ACCEPTED | Job |
Detokenize multiple values
Code samples
const inputBody = '{
"valueItems": [
"string"
],
"tweak": "string",
"dataType": "EMAIL",
"format": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/detokenizex',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/detokenizex \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/detokenizex
Detokenize multiple items with an existing PRF key. Detokenization uses the values and parameters provided in the JSON output of the tokenized data.
Body parameter
{
"valueItems": [
"string"
],
"tweak": "string",
"dataType": "EMAIL",
"format": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition name with a PRF key. |
keyId | path | string | true | PRF key UID designated for detokenization. |
body | body | DeTokenizeX | false | The tokenization parameters in JSON. |
Example responses
200 Response
[
{
"uid": "string",
"tweak": "string",
"value": "string"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Array of decrypted values with requested encoding | Inline |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | Authentication encryption failure | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [DetokenizeResponse] | false | none | none |
» uid | string | true | none | PRF key UID. |
» tweak | string | true | none | Tokenized tweak. |
» value | string | true | none | Array of tokenized values. |
Sign a message with CASP keys
Code samples
const inputBody = '{
"dataEncoding": "PLAIN",
"paillierKey": "string",
"signOperationData": {
"publicKeys": [
"string"
],
"dataToSign": [
"string"
],
"rawTransactions": [
"string"
],
"details": "string",
"operationId": "string",
"data": [
"string"
],
"description": "string",
"signedVaultDeclaration": "string",
"collectedDataGroups": {
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
},
"vaultAttributes": {
"attributes": [
{
"value": "string",
"attributeTemplate": {
"id": "string",
"name": "string",
"description": "string",
"min": "string",
"max": "string",
"templateTypeName": "string"
}
}
]
},
"policyId": "string",
"creationTime": 0,
"ledgerName": "string",
"changePublicKeys": [
"string"
],
"derivedWhitelistChildNumbers": [
0
],
"ukcKeyIds": [
"string"
],
"ledgerHashAlgorithm": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/caspSign',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/caspSign \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/caspSign
Used internally by CASP
Body parameter
{
"dataEncoding": "PLAIN",
"paillierKey": "string",
"signOperationData": {
"publicKeys": [
"string"
],
"dataToSign": [
"string"
],
"rawTransactions": [
"string"
],
"details": "string",
"operationId": "string",
"data": [
"string"
],
"description": "string",
"signedVaultDeclaration": "string",
"collectedDataGroups": {
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
},
"vaultAttributes": {
"attributes": [
{
"value": "string",
"attributeTemplate": {
"id": "string",
"name": "string",
"description": "string",
"min": "string",
"max": "string",
"templateTypeName": "string"
}
}
]
},
"policyId": "string",
"creationTime": 0,
"ledgerName": "string",
"changePublicKeys": [
"string"
],
"derivedWhitelistChildNumbers": [
0
],
"ukcKeyIds": [
"string"
],
"ledgerHashAlgorithm": "string"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key used for signing |
body | body | CaspSign | false | Data that needs to be signed. |
Example responses
200 Response
{
"signatures": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | CaspSignatures |
General
Get system information
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/info \
-H 'Accept: application/json'
GET /api/v1/info
Return system information, including version and supported capabilities. If authentication is provided, it returns the allowed operations.
Example responses
200 Response
{
"version": "2.0.1",
"lastActivityAt": "string",
"allowedOperations": "{Create,Destroy,Sign,...}",
"allowedPartitions": "{part1, part2, ...}",
"alerts": [
{
"category": "CLIENTS",
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"counter": 0,
"title": "string"
}
],
"allowedCryptoAlgorithms": "{RSA,DES,AES,...}",
"allowedDigitalSignatureAlgorithms": "{ECDSAWithSHA_1,ECDSAWithSHA256,ECDSAWithSHA384,...}",
"allowedHashingAlgorithms": "{SHA_1,SHA_224,SHA_256,...}",
"allowedBlockCipherModes": "{CBC,ECB,CFB,...}",
"allowedPaddings": "{RSA,DES,AES,...}",
"allowedCurves": "{SECP256K1,CURVE25519,CURVE448,...}"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | SystemInfo |
Check UKC health
Code samples
const headers = {
'Accept':'*/*'
};
fetch('/api/v1/health',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/health \
-H 'Accept: */*'
GET /api/v1/health
Return health status of the UKC system and determine if it is usable. As long as the HTTP return code is OK, the system is usable.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
pairOnly | query | boolean | false | pairOnly |
timeout | query | integer(int32) | false | Timeout |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
Check pair health
Code samples
fetch('/api/v1/pair/health',
{
method: 'GET'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/pair/health
GET /api/v1/pair/health
Return health status of the UKC pair and determine if it is usable
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
timeout | query | integer(int32) | false | Timeout |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
Get server certificate
Code samples
const headers = {
'Accept':'application/x-x509-user-cert,application/json'
};
fetch('/api/v1/self.cer',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/self.cer \
-H 'Accept: application/x-x509-user-cert,application/json'
GET /api/v1/self.cer
Download this specific server certificate. It is used for registering new servers.
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
Get root certificate
Code samples
const headers = {
'Accept':'application/x-pkcs7-certificates,application/json'
};
fetch('/api/v1/server-ca.p7b',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/server-ca.p7b \
-H 'Accept: application/x-pkcs7-certificates,application/json'
GET /api/v1/server-ca.p7b
Download the root CA certificate of UKC.
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
Get root CA certificates
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/trust',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/trust \
-H 'Accept: application/json'
GET /api/v1/trust
Get all root CA certificates.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"id": "my-certificate",
"role": "ROOT_CA",
"subject": "string",
"validUntil": "string",
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"version": "V3",
"alertLevel": "WARN",
"uid": "string",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"issuer": "string",
"validFrom": "string",
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"sha1Thumbprint": "string",
"signature": "string",
"isCa": true,
"isSelfSigned": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | SystemCertificate |
Generate random bytes
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/random',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/random \
-H 'Accept: application/json'
GET /api/v1/random
Get random bytes from the UKC server. By default it returns 32 bytes, unless size is specified. The UKC random number generator is combined from different entropy sources of the different servers in the UKC cluster
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
size | query | integer(int32) | false | Size (in bytes) of random bytes to return |
Example responses
200 Response
{
"entropy": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | RandomEntropyBytes |
Add entropy bytes
Code samples
const inputBody = '{
"entropy": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/random/entropy-bytes',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/random/entropy-bytes \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/random/entropy-bytes
Add random bytes to the UKC entropy source. Different clients can add entropy to the server. Collecting entropy from the clients can enhance the strength of the UKC random number generator. This function only adds entropy, i.e. if the provided value has no entropy, it does not harm the generator quality.
Body parameter
{
"entropy": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | RandomEntropyBytes | false | Random bytes |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Groups
List users groups
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/groups \
-H 'Accept: application/json'
GET /api/v1/groups
Return a list of all existing users groups.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
filter | query | string | false | Pagination filter |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: NAME, UPDATED_AT, CREATED_AT |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroupListResponse |
Create a new group
Code samples
const inputBody = '{
"name": "group1",
"roles": "[so, user, signer]",
"users": "[so, user, admin]",
"expression": ".*@somedomain.com"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/groups',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/groups \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/groups
Create a new group in a given partition.
Body parameter
{
"name": "group1",
"roles": "[so, user, signer]",
"users": "[so, user, admin]",
"expression": ".*@somedomain.com"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewUsersGroup | false | New Users Group |
Example responses
201 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Group created successfully | UsersGroup |
202 | Accepted | ACCEPTED | UsersGroup |
409 | Conflict | Group already exists | None |
Get users group details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/groups/{groupId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/groups/{groupId} \
-H 'Accept: application/json'
GET /api/v1/groups/{groupId}
Get details of an existing users group.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to look for |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroup |
Get users group permissions
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/groups/{groupId}/permissions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/groups/{groupId}/permissions \
-H 'Accept: application/json'
GET /api/v1/groups/{groupId}/permissions
Get permissions of an existing users group.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to look for |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroup |
Update users group
Code samples
const inputBody = '{
"expression": ".*@somedomain.com",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/groups/{groupId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/groups/{groupId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/groups/{groupId}
Update an existing users group.
Body parameter
{
"expression": ".*@somedomain.com",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to update |
partitionId | query | string | false | Partition ID |
body | body | UsersGroup | false | Users Group |
Example responses
200 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroup |
Add users to group
Code samples
const inputBody = '[
"string"
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/groups/{groupId}/users',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/groups/{groupId}/users \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/groups/{groupId}/users
Add a list of users to an existing users group.
Body parameter
[
"string"
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to update |
partitionId | query | string | false | Partition ID |
body | body | array[string] | false | Users |
Example responses
200 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroup |
Delete users from group
Code samples
const inputBody = '[
"string"
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/groups/{groupId}/users',
{
method: 'DELETE',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/groups/{groupId}/users \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
DELETE /api/v1/groups/{groupId}/users
Delete a list of users from an existing users group.
Body parameter
[
"string"
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to update |
partitionId | query | string | false | Partition ID |
body | body | array[string] | false | Users |
Example responses
200 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroup |
Delete users group
Code samples
fetch('/api/v1/groups/{groupId}',
{
method: 'DELETE'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/groups/{groupId}
DELETE /api/v1/groups/{groupId}
Delete an existing users group.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to delete |
partitionId | query | string | false | Partition ID |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
Add roles to group
Code samples
const inputBody = '[
"string"
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/groups/{groupId}/roles',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/groups/{groupId}/roles \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/groups/{groupId}/roles
Add a list of roles to an existing users group.
Body parameter
[
"string"
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to update |
partitionId | query | string | false | Partition ID |
body | body | array[string] | false | Roles |
Example responses
200 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroup |
Delete roles from group
Code samples
const inputBody = '[
"string"
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/groups/{groupId}/roles',
{
method: 'DELETE',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/groups/{groupId}/roles \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
DELETE /api/v1/groups/{groupId}/roles
Delete a list of roles from an existing users group.
Body parameter
[
"string"
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
groupId | path | string | true | Group ID to update |
partitionId | query | string | false | Partition ID |
body | body | array[string] | false | Roles |
Example responses
200 Response
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UsersGroup |
Identity providers
List identity providers
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/idps',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/idps \
-H 'Accept: application/json'
GET /api/v1/idps
Return a list of all identity providers.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]",
"tokenEndpoint": "http://example.com",
"authorizationEndpoint": "http://example.com",
"userinfoEndpoint": "http://example.com",
"jwksUri": "http://example.com",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | IdentityProviderListResponse |
Create identity provider
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"clientSecret": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/idps',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/idps \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/idps
Create a new identity provider.
Body parameter
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"clientSecret": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | NewIdentityProvider | false | New Identity provider |
Example responses
201 Response
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]",
"tokenEndpoint": "http://example.com",
"authorizationEndpoint": "http://example.com",
"userinfoEndpoint": "http://example.com",
"jwksUri": "http://example.com",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Identity provider created successfully | IdentityProvider |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Identity provider exists | None |
Get identity provider details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/idps/{idpId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/idps/{idpId} \
-H 'Accept: application/json'
GET /api/v1/idps/{idpId}
Get details of an existing identity provider.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
idpId | path | string | true | Identity Provider ID to look for |
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]",
"tokenEndpoint": "http://example.com",
"authorizationEndpoint": "http://example.com",
"userinfoEndpoint": "http://example.com",
"jwksUri": "http://example.com",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | IdentityProvider |
Update identity provider
Code samples
const inputBody = '{
"description": "string",
"url": "string",
"clientId": "string",
"clientSecret": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/idps/{idpId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/idps/{idpId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/idps/{idpId}
Update an identity provider.
Body parameter
{
"description": "string",
"url": "string",
"clientId": "string",
"clientSecret": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
idpId | path | string | true | Identity Provider ID |
body | body | IdentityProviderUpdates | false | Identity Provider updates |
Example responses
200 Response
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]",
"tokenEndpoint": "http://example.com",
"authorizationEndpoint": "http://example.com",
"userinfoEndpoint": "http://example.com",
"jwksUri": "http://example.com",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Identity provider updated successfully. | IdentityProvider |
202 | Accepted | ACCEPTED | Job |
Delete identity provider
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/idps/{idpId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/idps/{idpId} \
-H 'Accept: application/json'
DELETE /api/v1/idps/{idpId}
Delete an identity provider.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
idpId | path | string | true | Identity Provider ID |
Example responses
200 Response
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]",
"tokenEndpoint": "http://example.com",
"authorizationEndpoint": "http://example.com",
"userinfoEndpoint": "http://example.com",
"jwksUri": "http://example.com",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Deleted identity provider successfully | IdentityProvider |
202 | Accepted | ACCEPTED | Job |
Jobs
List pending jobs
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/jobs/quorum',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/jobs/quorum \
-H 'Accept: application/json'
GET /api/v1/jobs/quorum
Get a list of the pending quorum jobs.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
Example responses
200 Response
[
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Job] | false | none | [An asynchronous job] |
» initiator | string | false | read-only | Initiator |
» id | string | false | read-only | ID |
» title | string | false | read-only | Title |
» opName | string | false | read-only | opName |
» createdAt | string | false | read-only | Created at |
» expiresAt | string | false | read-only | Expires at |
» opParams | [KeyValueEntry] | false | read-only | opParams |
»» key | string | true | none | key |
»» value | string | true | none | value |
»» description | string | false | read-only | quorum timeout |
»» type | string | false | read-only | value type |
»» defaultValue | string | false | read-only | default value |
»» min | integer(int32) | false | read-only | minimum value |
»» max | integer(int32) | false | read-only | maximum value |
»» unit | string | false | read-only | unit type |
» response | string | false | read-only | response |
» approvedBy | [string] | false | read-only | Approved by |
» status | string | false | read-only | status |
» totalRequiredApprovals | integer(int32) | false | read-only | Total required approvals |
Enumerated Values
Property | Value |
---|---|
type | BOOLEAN |
type | TEXT |
type | INTEGER |
type | ARRAY |
type | MAP |
type | CERTIFICATE |
type | POLICY |
unit | SECONDS |
unit | MINUTES |
unit | HOURS |
unit | DAYS |
unit | MONTHS |
unit | YEARS |
unit | CHARACTERS |
unit | MILLIS |
status | PENDING_APPROVAL |
status | PENDING_EXECUTION |
status | DONE |
status | EXPIRED |
Get job status
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/jobs/my/status',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/jobs/my/status \
-H 'Accept: application/json'
GET /api/v1/jobs/my/status
Get the status of pending quorum requests.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"pendingApproval": 2,
"pendingExecution": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | QuorumStatus |
Get job data
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/jobs/{jobId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/jobs/{jobId} \
-H 'Accept: application/json'
GET /api/v1/jobs/{jobId}
Get job data for a specific job.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | Job ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Job |
Approve a job
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/jobs/{jobId}/approve',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/jobs/{jobId}/approve \
-H 'Accept: application/json'
POST /api/v1/jobs/{jobId}/approve
Approve a pending quorum job.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | Job ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Job |
Execute a job
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/jobs/{jobId}/execute',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/jobs/{jobId}/execute \
-H 'Accept: application/json'
POST /api/v1/jobs/{jobId}/execute
Execute an approved quorum job.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | Job ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Job |
Delete a job
Code samples
const headers = {
'Accept':'*/*'
};
fetch('/api/v1/jobs/{jobId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/jobs/{jobId} \
-H 'Accept: */*'
DELETE /api/v1/jobs/{jobId}
Delete a specific job.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
jobId | path | string | true | Job ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Job |
Keys
Generate key
Code samples
const inputBody = '{
"policyKeyId": "string",
"keyId": "string",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/generate',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/generate \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/generate
Generate a new asymmetric or symmetric key. The key format is provided as a parameter.
For example, to create a 256-bit AES symmetric key, use the parameters: {
  "keyId":"AES-KEY",
  "keyFormat": {
    "type": "AES", "size": "256"
  }
}
The keyFormat type can be: RSA, ECC, AES, DES, TDES, HMAC, XTS, PRF, PWD, LIMA, or EDDSA
Note: The response data depends on the key type and other factors. It includes only those attributes that are relevant to the requested key type.
Body parameter
{
"policyKeyId": "string",
"keyId": "string",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewGeneratedKey | false | The new key |
Example responses
201 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Key generated successfully | KeyInfo |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exist | KeyInfo |
Import key
Code samples
const inputBody = '{
"file": "string",
"id": "string",
"idEncoding": "string",
"password": "string",
"description": "string",
"usage": "string",
"exportType": "string",
"trusted": true,
"groups": "string",
"keyOnly": true,
"isSymmetric": true,
"symmetricKeyType": "string",
"testMode": true,
"keyRotationInterval": 0,
"activate": true,
"activationDate": "string",
"deactivationDate": "string",
"splitKeyParts": 0,
"keyPartIdentifier": 0,
"splitKeyThreshold": 0,
"splitKeyMethod": "string",
"encoding": "PLAIN"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json'
};
fetch('/api/v1/keys',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json'
POST /api/v1/keys
Import a key based on the given file.
Note: The response data depends on the key type and other factors. It includes only those attributes that are relevant to the requested key type.
Body parameter
file: string
id: string
idEncoding: string
password: string
description: string
usage: string
exportType: string
trusted: true
groups: string
keyOnly: true
isSymmetric: true
symmetricKeyType: string
testMode: true
keyRotationInterval: 0
activate: true
activationDate: string
deactivationDate: string
splitKeyParts: 0
keyPartIdentifier: 0
splitKeyThreshold: 0
splitKeyMethod: string
encoding: PLAIN
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | object | false | none |
» file | body | string(binary) | true | key file |
» id | body | string | true | key id |
» idEncoding | body | string | false | key id encoding |
» password | body | string | false | password for the file if required |
» description | body | string | false | key description |
» usage | body | string | false | key usage |
» exportType | body | string | false | Export Type |
» trusted | body | boolean | false | trusted (yes or no) |
» groups | body | string | false | List of groups |
» keyOnly | body | boolean | false | import only key (no chain) |
» isSymmetric | body | boolean | false | is key is symmetric |
» symmetricKeyType | body | string | false | the symmetric key type |
» testMode | body | boolean | false | get key info without importing |
» keyRotationInterval | body | integer | false | key rotation interval (days) |
» activate | body | boolean | false | activate the key |
» activationDate | body | string | false | Activation Date |
» deactivationDate | body | string | false | Deactivation Date |
» splitKeyParts | body | integer | false | number of split key parts |
» keyPartIdentifier | body | integer | false | key part identifier |
» splitKeyThreshold | body | integer | false | split key threshold |
» splitKeyMethod | body | string | false | split key method |
» encoding | body | string | false | key encoding |
Example responses
201 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Key generated successfully | KeyInfo |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exist | None |
List keys
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys \
-H 'Accept: application/json'
GET /api/v1/keys
Return a list of keys.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
id | query | string | false | Key id |
type | query | string | false | Key type |
exportType | query | string | false | exportType |
trusted | query | boolean | false | Is Trusted |
groups | query | array[string] | false | Groups |
state | query | string | false | Key state |
isEnabled | query | boolean | false | Is Enabled |
showDestroyed | query | boolean | false | Include destroyed objects |
keystoreName | query | string | false | Keystore name |
filter | query | string | false | Pagination filter |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: UID, NAME, DESCRIPTION, STATE, ALGORITHM, GROUPS, PERMITTED_OPERATIONS, UPDATED_AT |
detailed | query | boolean | false | Detailed |
Enumerated Values
Parameter | Value |
---|---|
type | RSA |
type | ECC |
type | AES |
type | TDES |
type | DES |
type | HMAC |
type | XTS |
type | PRF |
type | PWD |
type | LIMA |
type | EDDSA |
type | TOTSSeed |
type | CHACHA20 |
type | SPLIT_KEY |
exportType | IN_PLAIN |
exportType | WRAPPED |
exportType | WRAPPED_WITH_TRUSTED |
exportType | NON_EXPORTABLE |
state | PREACTIVE |
state | ACTIVE |
state | DEACTIVATED |
state | COMPROMISED |
state | DESTROYED |
state | DESTROYED_COMPROMISED |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfoListResponse |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | X-total-count | integer | int32 | total amount of keys |
Get key details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys/{keyId} \
-H 'Accept: application/json'
GET /api/v1/keys/{keyId}
Get detailed key information.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keyId | path | string | true | Key ID to look for |
partitionId | query | string | false | Partition ID |
detailed | query | boolean | false | Detailed |
signed | query | boolean | false | Signed |
Example responses
200 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfo |
Get key material
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/value',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys/{keyId}/value \
-H 'Accept: application/json'
GET /api/v1/keys/{keyId}/value
Return the key material for an asymmetric key or exportable symmetric key.
You can request the asymmetric key in PFX or PEM format and symmetric keys in raw format.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keyId | path | string | true | Key ID to look for |
partitionId | query | string | false | Partition ID |
password | query | string | false | Password |
Example responses
200 Response
{
"keyData": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Key |
Get public key
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/public',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys/{keyId}/public \
-H 'Accept: application/json'
GET /api/v1/keys/{keyId}/public
Return the public details of a key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keyId | path | string | true | Key ID to look for |
partitionId | query | string | false | Partition ID |
obfuscate | query | boolean | false | Add obfuscated private key as part of the encoded data, relevant only for PKI keys. |
totsIndex | query | integer(int32) | false | Index to the relevant derived public key, relevant only for TOTS keys. |
totsNOF | query | integer(int32) | false | Number of fragments, relevant only for TOTS keys. |
challengeResponse | query | string | false | Challenge response for TOTS offline mode |
paillierKey | query | string | false | Paillier public key for TOTS offline mode |
Example responses
200 Response
{
"keyData": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Key |
Get key groups
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys/groups \
-H 'Accept: application/json'
GET /api/v1/keys/groups
Get key groups.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
operations | query | array[string] | false | Operations |
Enumerated Values
Parameter | Value |
---|---|
operations | ACTIVATE |
operations | ADD_ATTRIBUTE |
operations | CREATE |
operations | CREATE_KEY_PAIR |
operations | DECRYPT |
operations | DELETE_ATTRIBUTE |
operations | DERIVE_KEY |
operations | DESTROY |
operations | DELETE |
operations | DY_DERIVE |
operations | DY_GET_KEY_MATERIAL |
operations | DY_GET_SECRET_DATA |
operations | DY_UPDATE_DATA |
operations | ENCRYPT |
operations | MAC |
operations | MAC_VERIFY |
operations | MODIFY_ATTRIBUTE |
operations | MODIFY_ATTRIBUTE_LIST |
operations | REGISTER |
operations | REKEY |
operations | REKEY_KEY_PAIR |
operations | REVOKE |
operations | SIGN |
operations | SIGNATURE_VERIFY |
operations | DY_ENABLE |
operations | DY_TOKENIZE |
operations | DY_DETOKENIZE |
operations | LINK |
operations | RELINK |
operations | UNLINK |
operations | JOIN_SPLIT_KEY |
operations | RESTORE_BACKUP |
Example responses
200 Response
[
"string"
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Enable a key
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/enable',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/enable \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/enable
Enable a specific key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key ID to enable |
Example responses
200 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Disable a key
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/disable',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/disable \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/disable
Disable a specific key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key ID to enable/disable |
Example responses
200 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Update a key
Code samples
const inputBody = '{
"id": "string",
"description": "string",
"splitKeyParts": 0,
"keyPartIdentifier": 0,
"splitKeyThreshold": 0,
"splitKeyMethod": "string",
"groups": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/keys/{keyId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/keys/{keyId}
Update an existing key.
Body parameter
{
"id": "string",
"description": "string",
"splitKeyParts": 0,
"keyPartIdentifier": 0,
"splitKeyThreshold": 0,
"splitKeyMethod": "string",
"groups": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
includeCert | query | boolean | false | Include Cert |
keyId | path | string | true | Key id |
body | body | KeyUpdates | false | Key updates |
Example responses
200 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Activate a key
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/activate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/activate \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/activate
Activate the specified key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
includeCert | query | boolean | false | Include Cert |
keyId | path | string | true | Key ID to activate |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Revoke a key
Code samples
const inputBody = '{
"message": "string",
"reason": "UNSPECIFIED",
"compromiseOccurrenceDate": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/revoke',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/revoke \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/revoke
Revoke the specified key.
Body parameter
{
"message": "string",
"reason": "UNSPECIFIED",
"compromiseOccurrenceDate": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key ID to activate |
includeCert | query | boolean | false | Include Cert |
body | body | RevokeParams | false | Revocation parameters |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Renew a key
Code samples
const headers = {
'Accept':'*/*'
};
fetch('/api/v1/keys/{keyId}/rekey',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/rekey \
-H 'Accept: */*'
POST /api/v1/keys/{keyId}/rekey
Create a new key with the same parameters as the existing one. The new key inherits the current key ID and a link is created between the two keys.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyRotationInterval | query | integer(int32) | false | key rotation interval |
keyStateOffset | query | integer(int32) | false | key state offset |
keyId | path | string | true | The key to move. This could be either a key UID or label. |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | KeyInfo |
201 | Created | OK. Key renewed successfully. | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Destroy a key
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/keys/{keyId} \
-H 'Accept: application/json'
DELETE /api/v1/keys/{keyId}
Delete the specified key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key ID to delete |
fullDelete | query | boolean | false | Delete object completely |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Get alerts summary for keys
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys/alerts \
-H 'Accept: application/json'
GET /api/v1/keys/alerts
Get the alerts summary for keys.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"category": "CLIENTS",
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"counter": 0,
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | AlertsSummary |
Get alerts for a specific key
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys/{keyId}/alerts \
-H 'Accept: application/json'
GET /api/v1/keys/{keyId}/alerts
Return the alerts for a specific key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keyId | path | string | true | Key ID to look for |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Alert |
Get key operations
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/permissions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keys/{keyId}/permissions \
-H 'Accept: application/json'
GET /api/v1/keys/{keyId}/permissions
Returns specific allowed operations on a key for a specific key UID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keyId | path | string | true | Key ID to look for |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
[
"ACTIVATE"
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Link keystore key
Code samples
const inputBody = '{
"keyStoreName": "string",
"keyStoreObjectId": "string",
"alias": "string",
"activate": true,
"groups": [
"string"
],
"keyRotationInterval": 0,
"activationDate": 0,
"deactivationDate": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keys/link',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/link \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keys/link
Link an existing KeyStore key
Body parameter
{
"keyStoreName": "string",
"keyStoreObjectId": "string",
"alias": "string",
"activate": true,
"groups": [
"string"
],
"keyRotationInterval": 0,
"activationDate": 0,
"deactivationDate": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewLinkedKey | false | Keystore Object Uid |
Example responses
201 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Key linked successfully | KeyInfo |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already linked | KeyInfo |
Relink a key from keystore
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/reLink',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/reLink \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/reLink
Relink a specific key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key ID to unLink |
Example responses
200 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Unlink a key from keystore
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keys/{keyId}/unLink',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/{keyId}/unLink \
-H 'Accept: application/json'
POST /api/v1/keys/{keyId}/unLink
Unlink a specific key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
keyId | path | string | true | Key ID to unLink |
Example responses
200 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Join split key
Code samples
const inputBody = '{
"id": "string",
"idEncoding": "string",
"password": "string",
"description": "string",
"usage": "string",
"exportType": "string",
"trusted": true,
"groups": "string",
"symmetricKeyType": "string",
"testMode": true,
"keyRotationInterval": 0,
"activate": true,
"activationDate": "string",
"deactivationDate": "string",
"splitKeyIdentifiers": "string",
"signed": true,
"deleteSplitKeyParts": true
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json'
};
fetch('/api/v1/keys/joinSplitKey',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/joinSplitKey \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json'
POST /api/v1/keys/joinSplitKey
Join split keys
Body parameter
id: string
idEncoding: string
password: string
description: string
usage: string
exportType: string
trusted: true
groups: string
symmetricKeyType: string
testMode: true
keyRotationInterval: 0
activate: true
activationDate: string
deactivationDate: string
splitKeyIdentifiers: string
signed: true
deleteSplitKeyParts: true
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | object | false | none |
» id | body | string | true | key id |
» idEncoding | body | string | false | key id encoding |
» password | body | string | false | password for the file if required |
» description | body | string | false | key description |
» usage | body | string | false | key usage |
» exportType | body | string | false | Export Type |
» trusted | body | boolean | false | trusted (yes or no) |
» groups | body | string | false | List of groups |
» symmetricKeyType | body | string | false | the symmetric key type |
» testMode | body | boolean | false | get key info without importing |
» keyRotationInterval | body | integer | false | key rotation interval (days) |
» activate | body | boolean | false | activate the key |
» activationDate | body | string | false | Activation Date |
» deactivationDate | body | string | false | Deactivation Date |
» splitKeyIdentifiers | body | string | false | split key parts unique identifiers |
» signed | body | boolean | false | signed flag |
» deleteSplitKeyParts | body | boolean | false | delete split key parts flag |
Example responses
201 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Split key joined successfully | KeyInfo |
202 | Accepted | ACCEPTED | Job |
Restore backup key
Code samples
const inputBody = '{
"file": "string"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json'
};
fetch('/api/v1/keys/restore',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keys/restore \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json'
POST /api/v1/keys/restore
Restore backup based on the given file.
Note: The response data depends on the key type and other factors. It includes only those attributes that are relevant to the requested key type.
Body parameter
file: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | object | false | none |
» file | body | string(binary) | true | key file |
Example responses
201 Response
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Key restored successfully | KeyInfo |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exist | None |
Keystores
Create a new keystore
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"property1": {},
"property2": {}
},
"isExternal": true,
"keyStoreSyncPolicy": "ALL_ACTIVE"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keyStores',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keyStores \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keyStores
Create a new keystore.
Body parameter
{
"name": "string",
"description": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"property1": {},
"property2": {}
},
"isExternal": true,
"keyStoreSyncPolicy": "ALL_ACTIVE"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewKeyStore | false | New Keystore |
Example responses
201 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Keystore created successfully | KeyStore |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Keystore already exists | None |
List external keystores
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keyStores',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keyStores \
-H 'Accept: application/json'
GET /api/v1/keyStores
Return a list of all external keystores.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
detailed | query | boolean | false | Detailed |
partitionId | query | string | false | Partition ID |
syncPolicies | query | array[string] | false | Sync Policies |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeystoreListResponse |
List keys from a keystore
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keyStores/{keystoreId}/keys',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keyStores/{keystoreId}/keys \
-H 'Accept: application/json'
GET /api/v1/keyStores/{keystoreId}/keys
Return a list of keys from a keystore.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keystoreId | path | string | true | Keystore ID |
partitionId | query | string | false | Partition ID |
limit | query | integer(int32) | false | Page Limit |
pageToken | query | string | false | Page Token |
detailed | query | boolean | false | Detailed |
onlyIds | query | boolean | false | Only Ids |
includeNotInUkc | query | boolean | false | Include not in ukc |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyInfoListResponse |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | X-total-count | integer | int32 | total amount of keys |
Get external KS key details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keyStores/{keystoreId}/keys/{externalKeyId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keyStores/{keystoreId}/keys/{externalKeyId} \
-H 'Accept: application/json'
GET /api/v1/keyStores/{keystoreId}/keys/{externalKeyId}
Get details of an existing keystore key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keystoreId | path | string | true | Keystore ID to look for |
externalKeyId | path | string | true | External key ID to look for |
detailed | query | boolean | false | Detailed |
delegate | query | boolean | false | Delegate |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyStore |
Get keystore details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keyStores/{keystoreId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keyStores/{keystoreId} \
-H 'Accept: application/json'
GET /api/v1/keyStores/{keystoreId}
Get details of an existing keystore.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keystoreId | path | string | true | Keystore ID to look for |
detailed | query | boolean | false | Detailed |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyStore |
Update a keystore
Code samples
const inputBody = '{
"description": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"property1": {},
"property2": {}
},
"keyStoreSyncPolicy": "ALL_ACTIVE"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keyStores/{keystoreId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/keyStores/{keystoreId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/keyStores/{keystoreId}
Update a keystore.
Body parameter
{
"description": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"property1": {},
"property2": {}
},
"keyStoreSyncPolicy": "ALL_ACTIVE"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keystoreId | path | string | true | Keystore ID |
partitionId | query | string | false | Partition ID |
body | body | KeyStoreUpdates | false | Keystore updates |
Example responses
200 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | KeyStore Updated successfully. | KeyStore |
202 | Accepted | ACCEPTED | Job |
Delete a keystore
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keyStores/{keystoreId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/keyStores/{keystoreId} \
-H 'Accept: application/json'
DELETE /api/v1/keyStores/{keystoreId}
Delete a keystore.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keystoreId | path | string | true | Keystore ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Key store registered successfully | KeyStore |
202 | Accepted | ACCEPTED | Job |
Register keystore endpoint
Code samples
const inputBody = '{
"url": "string",
"pfxPassword": "string",
"san": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/keyStores/{keystoreId}/register',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keyStores/{keystoreId}/register \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/keyStores/{keystoreId}/register
Register a new keystore endpoint.
Body parameter
{
"url": "string",
"pfxPassword": "string",
"san": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keystoreId | path | string | true | Keystore ID |
partitionId | query | string | false | Partition ID |
body | body | NewKeyStoreEndpoint | false | New Endpoint |
Example responses
200 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Key store registered successfully | KeyStore |
202 | Accepted | ACCEPTED | Job |
Unregister keystore endpoint
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keyStores/{keystoreId}/unregister',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/keyStores/{keystoreId}/unregister \
-H 'Accept: application/json'
POST /api/v1/keyStores/{keystoreId}/unregister
Unregister a keystore endpoint.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keystoreId | path | string | true | Keystore ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Key store registered successfully | KeyStore |
202 | Accepted | ACCEPTED | Job |
Get keystore parameters
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/keyStores/templates',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/keyStores/templates \
-H 'Accept: application/json'
GET /api/v1/keyStores/templates
Get details to configure keystore.
Example responses
200 Response
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | KeyStore |
Partitions
Create a new partition
Code samples
const inputBody = '{
"name": "string",
"soPassword": "string",
"newClient": {
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
},
"inherit": false,
"propagate": false,
"fipsRequirements": "FIPS_NONE",
"isAllowDefaultClient": false,
"allowKeystores": false,
"cacheTimeout": 3600
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json,application/x-pkcs12,application/x-x509-user-cert'
};
fetch('/api/v1/partitions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/partitions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json,application/x-pkcs12,application/x-x509-user-cert'
POST /api/v1/partitions
Create a new logical partition. It can optionally create a default client certificate for the new partition.
Body parameter
{
"name": "string",
"soPassword": "string",
"newClient": {
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
},
"inherit": false,
"propagate": false,
"fipsRequirements": "FIPS_NONE",
"isAllowDefaultClient": false,
"allowKeystores": false,
"cacheTimeout": 3600
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | NewPartition | false | The new partition |
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | string |
201 | Created | Partition created successfully. If initial client was specified, the response will include the generated PFX in Base64 encoded DER format | None |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exists | None |
List partitions
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/partitions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/partitions \
-H 'Accept: application/json'
GET /api/v1/partitions
Get a list of partitions.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
filter | query | string | false | Pagination filter |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: NAME, INHERITED, UPDATED_AT, CREATED_AT |
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"checkClientIp": true,
"name": "root",
"allowNat": true,
"allowUserOnlyCryptoOperations": true,
"clientRetriesLimit": 0,
"clientRetriesTimeout": 0,
"creationDate": "string",
"getjWTLimit": 0,
"lastUpdate": "string",
"passwordComplexity": true,
"passwordLength": 0,
"quorumOperations": "string",
"quorumSize": 0,
"quorumTimeout": 0,
"supportCertificatePropagation": true,
"supportPartitionInheritance": true,
"userRetriesLimit": 0,
"fipsRequirements": "FIPS_NONE",
"policy": [
{
"type": "RSA",
"minSize": 0,
"curves": [
"P256"
],
"operations": [
"SIGN"
],
"paddings": [
"RAW"
],
"hashes": [
"SHA1"
],
"modes": [
"ECB"
],
"macs": [
"GMAC"
],
"exportType": "IN_PLAIN",
"trusted": true,
"local": true
}
],
"allowKeystores": false,
"enforceTwoFactorAuth": false,
"totpTimeDrift": 30,
"cacheTimeout": 3600,
"jWTExpiration": 0
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | PartitionListResponse |
Get partition information
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/partitions/{partitionId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/partitions/{partitionId} \
-H 'Accept: application/json'
GET /api/v1/partitions/{partitionId}
Get partition information.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | path | string | true | Partition Id |
Example responses
200 Response
{
"checkClientIp": true,
"name": "root",
"allowNat": true,
"allowUserOnlyCryptoOperations": true,
"clientRetriesLimit": 0,
"clientRetriesTimeout": 0,
"creationDate": "string",
"getjWTLimit": 0,
"lastUpdate": "string",
"passwordComplexity": true,
"passwordLength": 0,
"quorumOperations": "string",
"quorumSize": 0,
"quorumTimeout": 0,
"supportCertificatePropagation": true,
"supportPartitionInheritance": true,
"userRetriesLimit": 0,
"fipsRequirements": "FIPS_NONE",
"policy": [
{
"type": "RSA",
"minSize": 0,
"curves": [
"P256"
],
"operations": [
"SIGN"
],
"paddings": [
"RAW"
],
"hashes": [
"SHA1"
],
"modes": [
"ECB"
],
"macs": [
"GMAC"
],
"exportType": "IN_PLAIN",
"trusted": true,
"local": true
}
],
"allowKeystores": false,
"enforceTwoFactorAuth": false,
"totpTimeDrift": 30,
"cacheTimeout": 3600,
"jWTExpiration": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Partition |
List partition settings
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/partitions/{partitionId}/settings',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/partitions/{partitionId}/settings \
-H 'Accept: application/json'
GET /api/v1/partitions/{partitionId}/settings
Get a list of configuration parameters for a partition.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | path | string | true | Partition Id/name of the target partition. Can be "default" to use the default partition for the current autneticated user. |
detailed | query | boolean | false | Detailed |
signed | query | boolean | false | Signed |
Example responses
200 Response
[
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [KeyValueEntry] | false | none | [Key value entry] |
» key | string | true | none | key |
» value | string | true | none | value |
» description | string | false | read-only | quorum timeout |
» type | string | false | read-only | value type |
» defaultValue | string | false | read-only | default value |
» min | integer(int32) | false | read-only | minimum value |
» max | integer(int32) | false | read-only | maximum value |
» unit | string | false | read-only | unit type |
Enumerated Values
Property | Value |
---|---|
type | BOOLEAN |
type | TEXT |
type | INTEGER |
type | ARRAY |
type | MAP |
type | CERTIFICATE |
type | POLICY |
unit | SECONDS |
unit | MINUTES |
unit | HOURS |
unit | DAYS |
unit | MONTHS |
unit | YEARS |
unit | CHARACTERS |
unit | MILLIS |
Update partition settings
Code samples
const inputBody = 'string';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/partitions/{partitionId}/settings/{settingKey}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/partitions/{partitionId}/settings/{settingKey} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/partitions/{partitionId}/settings/{settingKey}
Use this method to change one or more settings for the partition.
Body parameter
"string"
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | path | string | true | Partition ID |
settingKey | path | string | true | Setting key |
body | body | string | false | Setting value |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Delete partition
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/partitions/{partitionId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/partitions/{partitionId} \
-H 'Accept: application/json'
DELETE /api/v1/partitions/{partitionId}
Deletes a partition. The partition must not contain any keys or clients in order to be deleted.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | path | string | true | The Id of the partition to delete. The partition name can be used as the ID |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Partition deleted successfully | None |
202 | Accepted | ACCEPTED | Job |
Recover partition
Code samples
const inputBody = '{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json,application/x-pkcs12,application/x-x509-user-cert'
};
fetch('/api/v1/partitions/{partitionId}/recover',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/partitions/{partitionId}/recover \
-H 'Content-Type: application/json' \
-H 'Accept: application/json,application/x-pkcs12,application/x-x509-user-cert'
PUT /api/v1/partitions/{partitionId}/recover
Recover partition.
Body parameter
{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | path | string | true | Partition Id |
body | body | NewClientWithCertificate | false | The recovered partition new client |
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Partition recovered successfully | string |
202 | Accepted | ACCEPTED | Job |
Roles
Create a new role
Code samples
const inputBody = '{
"name": "role_name",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/roles',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/roles \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/roles
Create a new role in a given partition.
Body parameter
{
"name": "role_name",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewRole | false | New Role |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Role created successfully | None |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Role already exists | None |
List partition roles
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/roles',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/roles \
-H 'Accept: application/json'
GET /api/v1/roles
Return a list of all roles in a partition.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
filter | query | string | false | Pagination filter |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: NAME, GROUPS, UPDATED_AT, CREATED_AT |
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | RoleListResponse |
Get role details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/roles/{roleId} \
-H 'Accept: application/json'
GET /api/v1/roles/{roleId}
Get details of an existing role.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID to look for |
partitionId | query | string | false | Partition ID |
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Role |
Update a role
Code samples
const inputBody = '{
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/roles/{roleId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/roles/{roleId}
Update a role.
Body parameter
{
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID |
partitionId | query | string | false | Partition ID |
body | body | UpdatedRole | false | Role updates |
Example responses
200 Response
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Client Updated successfully. | Role |
202 | Accepted | ACCEPTED | Job |
Delete a role
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/roles/{roleId} \
-H 'Accept: application/json'
DELETE /api/v1/roles/{roleId}
Deletes a role.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID |
partitionId | query | string | false | Partition ID |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Role deleted successfully. | None |
202 | Accepted | ACCEPTED | Job |
Add permissions to role
Code samples
const inputBody = '{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}/permissions',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/roles/{roleId}/permissions \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/roles/{roleId}/permissions
Add role permission. A permission is the name of a key group (objectGroup) and a set of associated operations. See here for more information.
Body parameter
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID |
partitionId | query | string | false | Partition ID |
body | body | RolePermission | false | RolePermission |
Example responses
200 Response
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Client Updated successfully. | Role |
202 | Accepted | ACCEPTED | Job |
Update role permissions
Code samples
const inputBody = '{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}/{objectGroup}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/roles/{roleId}/{objectGroup} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/roles/{roleId}/{objectGroup}
Update role permissions.
Body parameter
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID |
objectGroup | path | string | true | Key group name |
partitionId | query | string | false | Partition ID |
body | body | RolePermission | false | RolePermission updates |
Example responses
200 Response
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Client Updated successfully. | Role |
202 | Accepted | ACCEPTED | Job |
Delete role permissions
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}/{objectGroup}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/roles/{roleId}/{objectGroup} \
-H 'Accept: application/json'
DELETE /api/v1/roles/{roleId}/{objectGroup}
Delete role permissions.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID |
objectGroup | path | string | true | Key group name |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Permission deleted successfully. | Role |
202 | Accepted | ACCEPTED | Job |
Add operation to permissions
Code samples
const inputBody = 'string';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}/{objectGroup}/operation',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/roles/{roleId}/{objectGroup}/operation \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/roles/{roleId}/{objectGroup}/operation
Add an operation to the set of operations associated with the objectGroup.
Body parameter
"string"
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID |
objectGroup | path | string | true | Key group name |
partitionId | query | string | false | Partition ID |
body | body | string | false | Operation |
Example responses
200 Response
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Client Updated successfully. | Role |
202 | Accepted | ACCEPTED | Job |
Delete operation from permissions
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/roles/{roleId}/{objectGroup}/{operation}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/roles/{roleId}/{objectGroup}/{operation} \
-H 'Accept: application/json'
DELETE /api/v1/roles/{roleId}/{objectGroup}/{operation}
Delete an operation from the set of operations associated with the objectGroup.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
roleId | path | string | true | Role ID |
objectGroup | path | string | true | Key group name |
operation | path | string | true | operation |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Permission deleted successfully. | Role |
202 | Accepted | ACCEPTED | Job |
Secrets
Create secret (application/octet-stream)
Code samples
const inputBody = '{
"newSecret": "string",
"id": "string",
"description": "string",
"groups": "string"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json'
};
fetch('/api/v1/secrets/file',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/secrets/file \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json'
POST /api/v1/secrets/file
Import a secret from a file
Body parameter
newSecret: string
id: string
description: string
groups: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | object | false | none |
» newSecret | body | string(binary) | true | Secret data |
» id | body | string | true | Secret ID |
» description | body | string | false | Key description |
» groups | body | string | false | List of groups |
Example responses
201 Response
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | OK | Secret |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Secret with this ID already exist | None |
Create secret (text/plain)
Code samples
const inputBody = '{
"id": "mySecret1",
"description": "string",
"groups": [
"string"
],
"data": "My secret data"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/secrets/text',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/secrets/text \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/secrets/text
Add new secret data with label
Body parameter
{
"id": "mySecret1",
"description": "string",
"groups": [
"string"
],
"data": "My secret data"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewSecret | false | newSecret |
Example responses
201 Response
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | OK | Secret |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Secret with this ID already exist | None |
Generate a new secret
Code samples
const inputBody = '{
"id": "mySecret1",
"description": "string",
"groups": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/secrets/generate',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/secrets/generate \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/secrets/generate
Add new secret data with label
Body parameter
{
"id": "mySecret1",
"description": "string",
"groups": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
complexity | query | boolean | false | complexity |
length | query | integer(int32) | false | length |
body | body | NewGeneratedSecret | false | newSecret |
Example responses
201 Response
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | OK | Secret |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Secret with this ID already exists | None |
List secrets
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/secrets',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/secrets \
-H 'Accept: application/json'
GET /api/v1/secrets
Return a list of all secrets in a partition
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | false | Key id |
partitionId | query | string | false | Partition ID |
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
groups | query | array[string] | false | Groups |
filter | query | string | false | Pagination filter |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: UID, NAME, DESCRIPTION, GROUPS, UPDATED_AT |
Example responses
200 Response
[
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
]
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [SecretListResponse] | false | none | none |
» totalItems | integer(int32) | false | read-only | totalItems |
» limit | integer(int32) | false | read-only | limit |
» skip | integer(int32) | false | read-only | skip |
» nextPageToken | string | false | none | nextPageToken |
» items | [Secret] | false | read-only | items |
»» id | string | true | none | An identifier/label for the secret data |
»» description | string | false | read-only | The secret description |
»» uid | string | false | read-only | Secret identifier |
»» groups | [string] | false | none | Secret groups |
»» createdAt | string | false | read-only | Creation date |
»» updatedAt | string | false | read-only | Last update date |
Get secret metadata
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/secrets/{secretId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/secrets/{secretId} \
-H 'Accept: application/json'
GET /api/v1/secrets/{secretId}
Return the metadata for an existing secret
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
secretId | path | string | true | Secret ID to look for |
Example responses
200 Response
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Secret |
Get secret (application/octet-stream)
Code samples
const headers = {
'Accept':'application/json,application/octet-stream'
};
fetch('/api/v1/secrets/{secretId}/file',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/secrets/{secretId}/file \
-H 'Accept: application/json,application/octet-stream'
GET /api/v1/secrets/{secretId}/file
Gets the value of a secret from a file.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
secretId | path | string | true | Secret ID to look for |
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
Get secret (text/plain)
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/secrets/{secretId}/text',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/secrets/{secretId}/text \
-H 'Accept: application/json'
GET /api/v1/secrets/{secretId}/text
Gets the value of a secret from a text string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
secretId | path | string | true | Secret ID to look for |
Example responses
200 Response
"string"
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
Get secret groups
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/secrets/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/secrets/groups \
-H 'Accept: application/json'
GET /api/v1/secrets/groups
Get groups for secrets
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
operations | query | array[string] | false | Operations |
Enumerated Values
Parameter | Value |
---|---|
operations | ACTIVATE |
operations | ADD_ATTRIBUTE |
operations | CREATE |
operations | CREATE_KEY_PAIR |
operations | DECRYPT |
operations | DELETE_ATTRIBUTE |
operations | DERIVE_KEY |
operations | DESTROY |
operations | DELETE |
operations | DY_DERIVE |
operations | DY_GET_KEY_MATERIAL |
operations | DY_GET_SECRET_DATA |
operations | DY_UPDATE_DATA |
operations | ENCRYPT |
operations | MAC |
operations | MAC_VERIFY |
operations | MODIFY_ATTRIBUTE |
operations | MODIFY_ATTRIBUTE_LIST |
operations | REGISTER |
operations | REKEY |
operations | REKEY_KEY_PAIR |
operations | REVOKE |
operations | SIGN |
operations | SIGNATURE_VERIFY |
operations | DY_ENABLE |
operations | DY_TOKENIZE |
operations | DY_DETOKENIZE |
operations | LINK |
operations | RELINK |
operations | UNLINK |
operations | JOIN_SPLIT_KEY |
operations | RESTORE_BACKUP |
Example responses
200 Response
[
"string"
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Update secret (application/octet-stream)
Code samples
const inputBody = '{
"newSecret": "string"
}';
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json'
};
fetch('/api/v1/secrets/{secretId}/file',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/secrets/{secretId}/file \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json'
PUT /api/v1/secrets/{secretId}/file
Update existing secret
Body parameter
newSecret: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
secretId | path | string | true | Secret ID |
body | body | object | false | none |
» newSecret | body | string(binary) | true | secret data |
Example responses
200 Response
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Secret |
202 | Accepted | ACCEPTED | Job |
Update secret (text/plain)
Code samples
const inputBody = '{
"data": "My secret data"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/secrets/{secretId}/text',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/secrets/{secretId}/text \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/secrets/{secretId}/text
Update existing secret
Body parameter
{
"data": "My secret data"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
secretId | path | string | true | Secret ID |
body | body | UpdatedSecret | false | updatedSecret |
Example responses
200 Response
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Secret |
202 | Accepted | ACCEPTED | Job |
Update secret details
Code samples
const inputBody = '{
"id": "string",
"description": "string",
"groups": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/secrets/{secretId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/secrets/{secretId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/secrets/{secretId}
Update existing secret details
Body parameter
{
"id": "string",
"description": "string",
"groups": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
secretId | path | string | true | Secret ID |
body | body | SecretUpdates | false | Secret updates |
Example responses
200 Response
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Secret |
202 | Accepted | ACCEPTED | Job |
Delete a secret
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/secrets/{secretId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/secrets/{secretId} \
-H 'Accept: application/json'
DELETE /api/v1/secrets/{secretId}
Deletes a secret by its label/ID
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
secretId | path | string | true | Secret ID to delete |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Servers
Add UKC server pair (Step 1)
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/servers/new/pair?ep_host=string&partner_host=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/servers/new/pair?ep_host=string&partner_host=string \
-H 'Accept: application/json'
GET /api/v1/servers/new/pair
Get the crypto server pair certificates for the server candidates. This endpoint can be used to verify that you are adding the correct servers.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
ep_host | query | string | true | Entry point host |
ep_port | query | integer(int32) | false | Entry point port |
partner_host | query | string | true | Partner host |
partner_port | query | integer(int32) | false | Partner port |
Example responses
200 Response
{
"entryPoint": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
},
"partner": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | NewPair |
Add UKC server pair (Step 2)
Code samples
const inputBody = '{
"entryPoint": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
},
"partner": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/servers/new/pair',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/servers/new/pair \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/servers/new/pair
Add a new UKC server pair. You can optionally use Add UKC server pair (Step 1) to verify the servers before adding them.
Body parameter
{
"entryPoint": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
},
"partner": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
force | query | boolean | false | Force |
body | body | NewPair | false | New pair |
Example responses
200 Response
{
"entryPoint": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
},
"partner": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | NewPair |
201 | Created | Pair added successfully | NewPair |
202 | Accepted | ACCEPTED | Job |
Add auxiliary server (Step 1)
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/servers/new/auxiliary?host=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/servers/new/auxiliary?host=string \
-H 'Accept: application/json'
GET /api/v1/servers/new/auxiliary
Get the auxiliary server certificate for the candidate. You can use this endpoint to verify the server before adding it.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
host | query | string | true | Auxiliary host |
port | query | integer(int32) | false | Auxiliary port |
Example responses
200 Response
{
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | NewServer |
Add auxiliary server (Step 2)
Code samples
const inputBody = '{
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/servers/new/auxiliary',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/servers/new/auxiliary \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/servers/new/auxiliary
Add a new auxiliary server. You can optionally use Add auxiliary server (Step 1) to verify the server before adding it.
Body parameter
{
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
force | query | boolean | false | Force |
body | body | NewServer | false | the new auxiliary |
Example responses
200 Response
{
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | NewServer |
201 | Created | Auxiliary server added successfully | NewServer |
202 | Accepted | ACCEPTED | Job |
Get server details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/servers/{serverId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/servers/{serverId} \
-H 'Accept: application/json'
GET /api/v1/servers/{serverId}
Get detailed server information.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
serverId | path | string | true | The identifier of the server is it's url (escaped) |
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Server |
Delete server
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/servers/{serverId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/servers/{serverId} \
-H 'Accept: application/json'
DELETE /api/v1/servers/{serverId}
Removes an auxiliary server or server pair from UKC cluster. A server pair is treated as one unit, identified by the host of its Entry Point server.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
serverId | path | string | true | The identifier of the server is it's url. In case of server pair, this should be the host of the EntryPoint server |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Server deleted | None |
202 | Accepted | ACCEPTED | Job |
Get server alerts
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/servers/{serverId}/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/servers/{serverId}/alerts \
-H 'Accept: application/json'
GET /api/v1/servers/{serverId}/alerts
Get server alerts.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
serverId | path | string | true | The identifier of the server is it's url (escaped) |
Example responses
200 Response
{
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Server |
System
Get signed logs
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/system/signlogs',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/system/signlogs \
-H 'Accept: application/json'
GET /api/v1/system/signlogs
Return signed logs (compressed) from the UKC engine.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
from | query | string | false | from |
to | query | string | false | to |
period | query | string | false | period |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
Get all system certificates
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/system/certificates',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/system/certificates \
-H 'Accept: application/json'
GET /api/v1/system/certificates
Get the UKC servers and root CA certificates.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"id": "my-certificate",
"role": "ROOT_CA",
"subject": "string",
"validUntil": "string",
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"version": "V3",
"alertLevel": "WARN",
"uid": "string",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"issuer": "string",
"validFrom": "string",
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"sha1Thumbprint": "string",
"signature": "string",
"isCa": true,
"isSelfSigned": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | SystemCertificate |
Get specific certificate
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/system/certificates/{certificateId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/system/certificates/{certificateId} \
-H 'Accept: application/json'
GET /api/v1/system/certificates/{certificateId}
Get specific system certificate.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
certificateId | path | string | true | Certificate ID |
detailed | query | boolean | false | Detailed |
Example responses
200 Response
{
"id": "my-certificate",
"role": "ROOT_CA",
"subject": "string",
"validUntil": "string",
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"version": "V3",
"alertLevel": "WARN",
"uid": "string",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"issuer": "string",
"validFrom": "string",
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"sha1Thumbprint": "string",
"signature": "string",
"isCa": true,
"isSelfSigned": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | SystemCertificate |
Get certificate alerts
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/system/certificates/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/system/certificates/alerts \
-H 'Accept: application/json'
GET /api/v1/system/certificates/alerts
Get alerts associated with the servers and root CA certificates.
Example responses
200 Response
{
"category": "CLIENTS",
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"counter": 0,
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | AlertsSummary |
Get specific certificate alert
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/system/certificates/{certificateId}/alerts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/system/certificates/{certificateId}/alerts \
-H 'Accept: application/json'
GET /api/v1/system/certificates/{certificateId}/alerts
Get specific system certificate alert.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
certificateId | path | string | true | Certificate ID |
Example responses
200 Response
{
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"title": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | Alert |
Get system settings
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/system/settings',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/system/settings \
-H 'Accept: application/json'
GET /api/v1/system/settings
Get UKC system configuration parameters. Returns a list of key-value entries that represent the configuration parameters for the UKC system.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
detailed | query | boolean | false | detailed |
Example responses
200 Response
[
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [KeyValueEntry] | false | none | [Key value entry] |
» key | string | true | none | key |
» value | string | true | none | value |
» description | string | false | read-only | quorum timeout |
» type | string | false | read-only | value type |
» defaultValue | string | false | read-only | default value |
» min | integer(int32) | false | read-only | minimum value |
» max | integer(int32) | false | read-only | maximum value |
» unit | string | false | read-only | unit type |
Enumerated Values
Property | Value |
---|---|
type | BOOLEAN |
type | TEXT |
type | INTEGER |
type | ARRAY |
type | MAP |
type | CERTIFICATE |
type | POLICY |
unit | SECONDS |
unit | MINUTES |
unit | HOURS |
unit | DAYS |
unit | MONTHS |
unit | YEARS |
unit | CHARACTERS |
unit | MILLIS |
Set system settings
Code samples
const inputBody = 'string';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/system/settings/{settingKey}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/system/settings/{settingKey} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/system/settings/{settingKey}
Sets the value for one or more system configuration parameters.
Body parameter
"string"
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
settingKey | path | string | true | Setting key |
body | body | string | false | Setting value |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
202 | Accepted | ACCEPTED | Job |
Get cluster topology
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/topology',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/topology \
-H 'Accept: application/json'
GET /api/v1/topology
Return the topology in the cluster including servers status.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
detailed | query | boolean | false | Detailed |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"pairs": [
{
"entryPoint": {
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
},
"partner": {
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
}
],
"auxiliaries": [
{
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"triplets": [
{
"entryPoint": "string",
"partner": "string",
"auxiliary": "string",
"connected": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Topology |
Get system key
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/system/keys/{keyId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/system/keys/{keyId} \
-H 'Accept: application/json'
GET /api/v1/system/keys/{keyId}
Get a signed system key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
keyId | path | string | true | Key ID |
Example responses
200 Response
{
"value": "eyJraWQiOiJpbnRlZ3JpdHkta2V5IiwiYWxnIjoiRVMyNTYifQ.eyJpZCI6InIxIiwidWlkIjoiMHgwMDY0MjczNWJmNDkyNDNiODciLCJvYmplY3RUeXBlIjoiUFJJVkFURV9LRVkiLCJrZXlGb3JtYXQiOnsidHlwZSI6IlJTQSIsInNpemUiOjIwNDh9LCJrZXlQcm9wZXJ0aWVzIjp7InRydXN0ZWQiOmZhbHNlLCJleHBvcnRUeXBlIjoiTk9OX0VYUE9SVEFCTEUiLCJncm91cHMiOlsiZGVmYXVsdCJdfSwibG9jYWwiOnRydWUsImhhc0NlcnRpZmljYXRlIjpmYWxzZSwic3RhdGUiOiJBQ1RJVkUiLCJzeW5jIjp0cnVlLCJyZXF1aXJlQXBwcm92YWwiOmZhbHNlLCJwa0luZm8iOnsicnNhIjp7InB1YmxpY0V4cG9uZW50IjoiNjU1MzciLCJtb2R1bHVzIjoiMDA6QkQ6MTA6MTc6ODI6QkM6M0U6Mjc6MDI6QUQ6RDI6Mjk6REI6ODQ6ODY6MTE6QjY6RDk6REM6MTA6QjU6M0I6QjU6QTM6NzA6OEY6MUU6QUE6Mzk6MkI6Njc6RTE6Nzk6NzM6RDc6QkU6OTA6RDY6REU6QjQ6REM6OUM6RjY6Nzc6MDg6MTA6RkQ6QzE6N0Y6Qzk6M0Y6RDQ6RTk6OTQ6MDM6NjM6Q0E6RDQ6NUI6NEE6MjE6QUU6Qzg6RjE6RkY6OTU6MzY6RDI6RDE6NzI6QUE6M0I6NEY6RUQ6MjA6MzI6RDk6NDc6QzM6NTk6NDI6MDk6NkI6RUU6Rjc6MjA6NUU6NTA6NjM6ODg6NkU6QzY6NzY6RjI6NjA6QUM6MTM6Mzc6MDE6NDM6NkU6Qzc6NDc6MjA6RTc6NjI6MzI6MjI6REQ6NDA6Qjk6MDk6MjI6M0U6RTc6QkY6NDU6MUM6NzY6OTg6QUM6Rjg6RTA6MjU6Qjg6RDY6NDQ6QTQ6RkM6N0I6Qjc6NkQ6RTc6REM6Q0I6OEM6NjU6MTA6RUM6QUE6RTU6Qzg6RUQ6Q0U6NzI6RUE6RDA6MjU6QjQ6OUQ6MkQ6QkI6REY6QjU6NUQ6QjQ6OTA6NUM6MDI6N0U6MEU6N0E6MjQ6QjM6Qzg6Qjg6RTc6QzM6RDg6NEU6ODI6OUE6NUQ6N0M6QkM6Mzk6MDg6MjA6Njg6NDc6NDc6Rjk6NDc6QkU6MzU6NkE6NUQ6NUQ6NkY6MUI6QTM6QjQ6MUY6QjU6Mjg6Njg6QjU6ODI6QkI6RDQ6NkI6RjQ6RTE6MzI6RDA6Qzg6M0I6MDU6QjA6MzE6RTA6NTQ6NEE6QjY6ODU6NkM6MUY6MkE6QkU6QjQ6MTQ6Q0M6NEE6Mjk6M0E6OEE6RTc6QUI6ODg6RDQ6RTg6OEY6QTE6NkI6RTQ6ODQ6N0Y6NUE6RjU6QzU6QjU6RUY6RDQ6REQ6Mjg6Njc6MjE6Qzg6QkU6OUY6Mzk6QzE6MTQ6Mzk6Q0Y6RDA6REIifX0sImNyZWF0ZWRBdCI6IjIwMTktMDMtMTFUMDg6MzM6NDdaIiwidXBkYXRlZEF0IjoiMjAxOS0wMy0xMVQwODozMzo0OFoifQ.OMsru0JgLra358guXW8jMgCgArlkHdeR0m2rbFLl4yIKLNjxt4TUv3q2IpdUKgeOvWsexBb3VT1TZQ7ON6Y3pA"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | JWS |
Users
Create a user
Code samples
const inputBody = '{
"password": "Password1!",
"name": "john_a",
"role": "user",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"authType": "STANDARD"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/users',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/users \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/users
Create a new user in a given partition.
Body parameter
{
"password": "Password1!",
"name": "john_a",
"role": "user",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"authType": "STANDARD"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
body | body | NewUser | false | New User |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | User created successfully | None |
202 | Accepted | ACCEPTED | Job |
409 | Conflict | Object already exists | None |
List partition users
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/users \
-H 'Accept: application/json'
GET /api/v1/users
Return a list of all users in a partition.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
limit | query | integer(int32) | false | Limit |
skip | query | integer(int32) | false | skip |
filter | query | string | false | Pagination filter |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: NAME, ROLE, AUTHENTICATION, LOGIN_FAILURES, UPDATED_AT, CREATED_AT |
Example responses
200 Response
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "john_a",
"partition": "~.codeSign.developers",
"role": "string",
"createdAt": "string",
"lastActivityAt": "string",
"retries": 0,
"authType": "STANDARD",
"lastUpdateAt": "string",
"lastPasswordUpdated": "string",
"is2FAEnrolled": true,
"lastEnrolledAt": "string",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"groups": "[groupA, groupB]",
"isLoginLocked": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UserListResponse |
Get user details
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/users/{userId}/permissions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET /api/v1/users/{userId}/permissions \
-H 'Accept: application/json'
GET /api/v1/users/{userId}/permissions
Get details of an existing user.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
userId | path | string | true | User ID to look for |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "john_a",
"partition": "~.codeSign.developers",
"role": "string",
"createdAt": "string",
"lastActivityAt": "string",
"retries": 0,
"authType": "STANDARD",
"lastUpdateAt": "string",
"lastPasswordUpdated": "string",
"is2FAEnrolled": true,
"lastEnrolledAt": "string",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"groups": "[groupA, groupB]",
"isLoginLocked": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | User |
Delete a user
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/users/{userId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/users/{userId} \
-H 'Accept: application/json'
DELETE /api/v1/users/{userId}
Delete a user.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
userId | path | string | true | User ID |
partitionId | query | string | false | Partition ID |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User deleted successfully. | None |
202 | Accepted | ACCEPTED | Job |
Reset user password
Code samples
const inputBody = '{
"password": "Password2!"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/users/{userId}/password',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/users/{userId}/password \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/users/{userId}/password
Reset user password. SO can do it for users in his partition. The root parition SO can do it to SO of any partition.
Body parameter
{
"password": "Password2!"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
userId | path | string | true | User ID |
partitionId | query | string | false | Partition ID |
body | body | Password | false | Password |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User password reset successfully | None |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | New password does not comply with password policy rules | None |
Recover SO password
Code samples
const inputBody = '{
"password": "Password2!"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/users/{soId}/recover?partitionId=string',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/users/{soId}/recover?partitionId=string \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/users/{soId}/recover
Recover the SO password. The Root SO can do it for other SOs.
Body parameter
{
"password": "Password2!"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
soId | path | string | true | So ID |
partitionId | query | string | true | Partition ID |
body | body | Password | false | Password |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | So password recovered successfully | None |
202 | Accepted | ACCEPTED | Job |
400 | Bad Request | New password does not comply with password policy rules | None |
Change user role
Code samples
const inputBody = 'string';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/users/{userId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/users/{userId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/users/{userId}
Change an existing user role.
Body parameter
"string"
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
userId | path | string | true | User ID to look for |
partitionId | query | string | false | Partition ID |
body | body | string | false | Role ID |
Example responses
200 Response
{
"name": "john_a",
"partition": "~.codeSign.developers",
"role": "string",
"createdAt": "string",
"lastActivityAt": "string",
"retries": 0,
"authType": "STANDARD",
"lastUpdateAt": "string",
"lastPasswordUpdated": "string",
"is2FAEnrolled": true,
"lastEnrolledAt": "string",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"groups": "[groupA, groupB]",
"isLoginLocked": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | User |
202 | Accepted | ACCEPTED | Job |
Unassign user role
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/users/{userId}/role',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/users/{userId}/role \
-H 'Accept: application/json'
DELETE /api/v1/users/{userId}/role
Unassign user role.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
userId | path | string | true | User ID |
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "john_a",
"partition": "~.codeSign.developers",
"role": "string",
"createdAt": "string",
"lastActivityAt": "string",
"retries": 0,
"authType": "STANDARD",
"lastUpdateAt": "string",
"lastPasswordUpdated": "string",
"is2FAEnrolled": true,
"lastEnrolledAt": "string",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"groups": "[groupA, groupB]",
"isLoginLocked": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Role unassigned successfully. | User |
202 | Accepted | ACCEPTED | Job |
Update user aliases
Code samples
const inputBody = '[
{
"identityProviderName": "string",
"aliases": [
{}
]
}
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/api/v1/users/{userId}/aliases',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT /api/v1/users/{userId}/aliases \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
PUT /api/v1/users/{userId}/aliases
Update user aliases.
Body parameter
[
{
"identityProviderName": "string",
"aliases": [
{}
]
}
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
userId | path | string | true | User ID to look for |
partitionId | query | string | false | Partition ID |
body | body | UserAliases | false | User aliases |
Example responses
200 Response
{
"name": "john_a",
"partition": "~.codeSign.developers",
"role": "string",
"createdAt": "string",
"lastActivityAt": "string",
"retries": 0,
"authType": "STANDARD",
"lastUpdateAt": "string",
"lastPasswordUpdated": "string",
"is2FAEnrolled": true,
"lastEnrolledAt": "string",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"groups": "[groupA, groupB]",
"isLoginLocked": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | User |
202 | Accepted | ACCEPTED | Job |
Generate 2FA secret
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/users/2fa/secret',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST /api/v1/users/2fa/secret \
-H 'Accept: application/json'
POST /api/v1/users/2fa/secret
Generate 2FA secret.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
partitionId | query | string | false | Partition ID |
Example responses
200 Response
{
"name": "string",
"totpUrl": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | successful operation | TwoFactorAuthSecretResponse |
201 | Created | CREATED | TwoFactorAuthSecretResponse |
202 | Accepted | ACCEPTED | Job |
Revoke user 2FA enrollment
Code samples
const headers = {
'Accept':'application/json'
};
fetch('/api/v1/users/{userId}/2fa',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X DELETE /api/v1/users/{userId}/2fa \
-H 'Accept: application/json'
DELETE /api/v1/users/{userId}/2fa
Revoke user 2FA enrollment.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
userId | path | string | true | User ID to look for |
partitionId | query | string | false | Partition ID |
Example responses
202 Response
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | ACCEPTED | Job |
204 | No Content | NO CONTENT | None |
Schemas
AWSKeyStoreTemplate
{
"name": "string",
"accessKeyId": "string",
"secretKey": "string",
"description": "string",
"param": {
"REGION": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
accessKeyId | string | false | none | none |
secretKey | string | false | none | none |
description | string | false | none | none |
param | AWSParam | false | none | none |
AWSParam
{
"REGION": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
REGION | string | false | none | none |
Aad
{
"value": "string",
"encoding": "PLAIN"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Additional Authentication Data |
encoding | string | false | none | Authentication data encoding |
Enumerated Values
Property | Value |
---|---|
encoding | PLAIN |
encoding | BASE64 |
encoding | HEX |
Alert
{
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"title": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
alertType | string | false | read-only | alertType |
alertLevel | string | false | read-only | alertLevel |
title | string | false | read-only | title |
Enumerated Values
Property | Value |
---|---|
alertType | CERT_ABOUT_TO_EXPIRE |
alertType | CERT_EXPIRED |
alertType | OUT_OF_SYNC |
alertType | IS_LOCKED |
alertType | RENEW_REQUIRED |
alertType | DB_BACKUP_INCONSISTENT |
alertType | DB_BACKUP_FAILURE |
alertType | SECRET_ABOUT_TO_EXPIRE |
alertType | SECRET_EXPIRED |
alertType | KEY_ROTATION_IS_APPROACHING |
alertType | KEY_ACTIVATION_IS_APPROACHING |
alertType | KEY_DEACTIVATION_IS_APPROACHING |
alertType | RESTART_REQUIRED |
alertType | ACTIVATION_CODE_ABOUT_TO_EXPIRE |
alertType | ACTIVATION_CODE_EXPIRED |
alertLevel | WARN |
AlertsSummary
{
"category": "CLIENTS",
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"counter": 0,
"title": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
category | string | false | read-only | category |
alertType | string | false | read-only | alertType |
alertLevel | string | false | read-only | alertLevel |
counter | integer(int32) | false | read-only | counter |
title | string | false | read-only | title |
Enumerated Values
Property | Value |
---|---|
category | CLIENTS |
category | SYSTEM |
category | KEYS |
category | BACKUP |
alertType | CERT_ABOUT_TO_EXPIRE |
alertType | CERT_EXPIRED |
alertType | OUT_OF_SYNC |
alertType | IS_LOCKED |
alertType | RENEW_REQUIRED |
alertType | DB_BACKUP_INCONSISTENT |
alertType | DB_BACKUP_FAILURE |
alertType | SECRET_ABOUT_TO_EXPIRE |
alertType | SECRET_EXPIRED |
alertType | KEY_ROTATION_IS_APPROACHING |
alertType | KEY_ACTIVATION_IS_APPROACHING |
alertType | KEY_DEACTIVATION_IS_APPROACHING |
alertType | RESTART_REQUIRED |
alertType | ACTIVATION_CODE_ABOUT_TO_EXPIRE |
alertType | ACTIVATION_CODE_EXPIRED |
alertLevel | WARN |
AlternativeNames
{
"uid": "string",
"isCritical": true,
"names": [
"string"
]
}
Certificate x509 extension
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uid | string | true | none | Extension UID |
isCritical | boolean | true | none | Is Extension Critical |
names | [string] | false | none | names |
ApplicationInfo
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
nameSpace | string | false | none | nameSpace |
data | object | false | none | data |
» additionalProperties | object | false | none | none |
AsymmetricCryptoParams
{
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
padding | Padding | false | none | Crypto operation padding type |
hash | string | false | none | the hash type |
Enumerated Values
Property | Value |
---|---|
hash | SHA1 |
hash | SHA256 |
hash | SHA384 |
hash | SHA512 |
hash | SHA3_256 |
hash | SHA3_384 |
hash | SHA3_512 |
AttributeTemplateDetails
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | attribute template ID |
description | string | false | none | Attribute template description |
type | string | true | none | attribute template type |
range | Range | false | none | none |
AttributeTemplateGroupDetails
{
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
description | string | false | none | none |
attributeTemplateDetails | [AttributeTemplateDetails] | false | none | none |
AuthorityKeyIdentifier
{
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
}
Certificate x509 extension
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uid | string | true | none | Extension UID |
isCritical | boolean | true | none | Is Extension Critical |
keyId | string | false | read-only | none |
authNames | [string] | false | none | Auth names |
serialNumber | string | false | none | Serial number |
AzureKeyStoreTemplate
{
"name": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"URL": "string"
},
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
accessKeyId | string | false | none | none |
secretKey | string | false | none | none |
params | AzureParams | false | none | none |
description | string | false | none | none |
AzureParams
{
"URL": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
URL | string | false | none | none |
BasicConstraints
{
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
}
Certificate x509 extension
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uid | string | true | none | Extension UID |
isCritical | boolean | true | none | Is Extension Critical |
pathLen | integer(int32) | false | none | Path Len |
isCa | boolean | false | none | Is CA |
Capabilities
{
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
keyStoreObjectTypes | [string] | false | none | none |
cryptoOperationTypes | [string] | false | none | none |
keyStoreObjectAlgorithmTypes | [string] | false | none | none |
cryptoOperationAlgorithmTypes | [string] | false | none | none |
hashTypes | [string] | false | none | none |
byokSupport | [string] | false | none | none |
renameSupport | boolean | false | none | none |
CaspSign
{
"dataEncoding": "PLAIN",
"paillierKey": "string",
"signOperationData": {
"publicKeys": [
"string"
],
"dataToSign": [
"string"
],
"rawTransactions": [
"string"
],
"details": "string",
"operationId": "string",
"data": [
"string"
],
"description": "string",
"signedVaultDeclaration": "string",
"collectedDataGroups": {
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
},
"vaultAttributes": {
"attributes": [
{
"value": "string",
"attributeTemplate": {
"id": "string",
"name": "string",
"description": "string",
"min": "string",
"max": "string",
"templateTypeName": "string"
}
}
]
},
"policyId": "string",
"creationTime": 0,
"ledgerName": "string",
"changePublicKeys": [
"string"
],
"derivedWhitelistChildNumbers": [
0
],
"ukcKeyIds": [
"string"
],
"ledgerHashAlgorithm": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
dataEncoding | string | false | none | none |
paillierKey | string | false | none | none |
signOperationData | SignOperationData | true | none | none |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
CaspSignatures
{
"signatures": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
signatures | [string] | false | none | base64 encoded signatures |
CertificateInfo
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
Certificate public information
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Certificate identifier label |
uid | string | true | none | UID |
sha1Thumbprint | string | true | none | certificate sha1 |
subject | string | true | none | subject |
issuer | string | true | none | The CA that signed this certificate |
validFrom | string | true | none | Date of of validity period start for this certificate |
validUntil | string | true | none | Date of of validity period end for this certificate |
version | string | true | none | Certificate version |
serial | string | true | none | Certificate serial number |
signatureAlgorithm | string | true | none | Signing algorithm used for signing this certificate |
isCa | boolean | true | none | Determines if this certificate is a CA certificate |
isSelfSigned | boolean | true | none | Determines if this certificate is a self signed certificate |
pkInfo | PKInfoType | true | none | Properties of PKI key |
basicConstraints | BasicConstraints | false | none | Certificate x509 extension |
subjectKeyIdentifier | SubjectKeyIdentifier | false | none | Certificate x509 extension |
authorityKeyIdentifier | AuthorityKeyIdentifier | false | none | Certificate x509 extension |
subjectAlternativeNames | AlternativeNames | false | none | Certificate x509 extension |
issuerAlternativeNames | AlternativeNames | false | none | Certificate x509 extension |
extendedKeyUsage | ExtendedKeyUsage | false | none | Certificate x509 extension |
signature | string | true | none | CA signature value for this certificate |
alertLevel | string | false | read-only | alertLevel |
Enumerated Values
Property | Value |
---|---|
alertLevel | WARN |
Challenge
{
"value": "example"
}
Challenge
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Challenge to be solved by client |
Cipher
{
"cipherTextBase64": "string",
"ivBase64": "string"
}
Includes encrypted data
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
cipherTextBase64 | string | true | none | base64 encoded encrypted data |
ivBase64 | string | false | none | base64 encoded Initialize Vector |
ClearText
{
"clearText": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
clearText | string | false | none | clearText |
Client
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
A UKC new client
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | read-only | Client name |
partition | string | false | read-only | Partition |
createdAt | string | false | none | Created at |
activationStatus | string | false | read-only | Client activation status |
activationType | string | false | read-only | Client activation type |
lastUpdatedAt | string | false | read-only | Last update time for this client record |
failedActivationCounter | integer(int32) | false | read-only | Number of failed retries to use client activation code |
isActivationLocked | boolean | false | read-only | Is activation locked |
checkIp | boolean | false | none | Enforce client ip verification |
allowNat | boolean | false | none | Allow client use NAT |
ipRange | string | false | none | Client IP range |
expiresAt | string | false | none | Client secret expiration date |
expiration | integer(int32) | false | none | Client secret expiration time (ms) |
activationCodeValidity | integer(int32) | false | none | Client activation code validity in minutes |
activationCodeLength | integer(int32) | false | none | Client activation code length (digits) |
activationCodeExpiration | string | false | none | Client activation code expiration date |
template | string | false | none | Client template |
persistentClient | boolean | false | none | Use ephemeral persistent client (relevant for Templates clients only) |
activationCode | string | false | none | Client activation code |
certificateRenewRequired | boolean | false | none | Is client certificate need to be renewed |
grantTypes | [string] | false | none | Client grant types |
certificateInfo | CertificateInfo | false | none | Certificate public information |
certExpiresAt | string | false | read-only | Client certificate expiration date |
certificateExpiration | integer(int32) | false | read-only | Client certificate validity in minutes |
alertLevel | string | false | read-only | alertLevel |
version | string | false | none | Client version |
secret | string | false | none | Client secret |
Enumerated Values
Property | Value |
---|---|
activationStatus | ACTIVATED |
activationStatus | PENDING |
activationStatus | LOCKED |
activationType | CERTIFICATE_REQUEST |
activationType | ACTIVATION_CODE |
activationType | CERTIFICATE_DOWNLOAD |
activationType | EXTERNAL |
activationType | TEMPLATE |
activationType | SECRET |
activationType | EPHEMERAL |
activationType | PUBLIC_KEY |
alertLevel | WARN |
ClientListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "client-name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"activationStatus": "ACTIVATED",
"activationType": "CERTIFICATE_REQUEST",
"lastUpdatedAt": "string",
"failedActivationCounter": 0,
"isActivationLocked": true,
"checkIp": true,
"allowNat": true,
"ipRange": "string",
"expiresAt": "string",
"expiration": 0,
"activationCodeValidity": 0,
"activationCodeLength": 0,
"activationCodeExpiration": "string",
"template": "string",
"persistentClient": true,
"activationCode": "string",
"certificateRenewRequired": true,
"grantTypes": [
"CLIENT_CREDENTIALS"
],
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
},
"certExpiresAt": "string",
"certificateExpiration": 0,
"alertLevel": "WARN",
"version": "string",
"secret": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [Client] | false | read-only | items |
ClientsUpdates
{
"checkIp": false,
"allowNat": false,
"ipRange": "0.0.0.0/0"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
checkIp | boolean | false | none | Enforce client ip verification |
allowNat | boolean | false | none | Allow client use NAT |
ipRange | string | false | none | Client IP range |
CollectedData
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
dataCollectorDetails | DataCollectorDetails | false | none | none |
data | object | false | none | none |
» additionalProperties | string | false | none | none |
collectionDone | boolean | false | none | none |
signedUniqueData | string | false | none | none |
collectionStart | integer(int64) | false | none | none |
collectionEnd | integer(int64) | false | none | none |
CollectedDataGroupsDetails
{
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
collectionComplete | boolean | false | none | none |
dataCollectionGroups | [DataCollectionGroup] | false | none | none |
ConcatDerivationParams
{
"data": "string",
"isPrefix": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | Derivation data |
isPrefix | boolean | false | none | True for prefix, false for suffix |
DataCollectionGroup
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
minimumRequired | integer(int32) | false | none | none |
collectedData | [CollectedData] | false | none | none |
name | string | false | none | none |
DataCollectorDetails
{
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
state | string | false | none | none |
description | string | false | none | none |
creationTime | string | false | none | none |
modificationTime | string | false | none | none |
authenticationKey | string | false | none | none |
attributeTemplateGroup | AttributeTemplateGroupDetails | false | none | none |
activationCode | string | false | none | none |
DbBackup
{
"id": "string",
"state": "IN_PROGRESS",
"error": "string",
"date": "string",
"file": "string",
"pairHostnames": [
"string"
],
"version": "string",
"digestDiff": {
"diffRecords": [
{
"sectionDiff": "string",
"entriesDiff": [
{
"objectType": "string",
"digestSource": "string",
"uid": "string",
"name": "string",
"partitionId": "string",
"partitionName": "string",
"version": "string",
"detail": "string",
"object type": "string",
"digest source": "string",
"partition id": "string",
"partition name": "string"
}
]
}
]
},
"alertLevel": "WARN"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | ID |
state | string | false | none | State |
error | string | false | none | none |
date | string | false | none | Date |
file | string | false | none | File |
pairHostnames | [string] | false | none | Pair host names |
version | string | false | none | Version |
digestDiff | DigestDiff | false | none | none |
alertLevel | string | false | read-only | alertLevel |
Enumerated Values
Property | Value |
---|---|
state | IN_PROGRESS |
state | PENDING_TEST |
state | TEST_SUCCESS |
state | TEST_FAILURE |
state | MANUAL_TEST |
state | GENERAL_FAILURE |
state | INVALID |
alertLevel | WARN |
DbBackupListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"id": "string",
"state": "IN_PROGRESS",
"error": "string",
"date": "string",
"file": "string",
"pairHostnames": [
"string"
],
"version": "string",
"digestDiff": {
"diffRecords": [
{
"sectionDiff": "string",
"entriesDiff": [
{
"objectType": "string",
"digestSource": "string",
"uid": "string",
"name": "string",
"partitionId": "string",
"partitionName": "string",
"version": "string",
"detail": "string",
"object type": "string",
"digest source": "string",
"partition id": "string",
"partition name": "string"
}
]
}
]
},
"alertLevel": "WARN"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [DbBackup] | false | read-only | items |
DeTokenizeX
{
"valueItems": [
"string"
],
"tweak": "string",
"dataType": "EMAIL",
"format": "string"
}
Detokenize multiple items with an existing PRF key. Detokenization uses the values and parameters provided in the JSON output of the tokenized data. Note that all data types are input values except for TOKEN which is an output value.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
valueItems | [string] | true | none | Array of input values to tokenize. |
tweak | string | true | none | Changes the tokenization effect. |
dataType | string | true | none | Data type of valueItems. |
format | string | false | none | Defines the tokenization format. Applies to SSN and US_PHONE data types only. |
Enumerated Values
Property | Value |
---|---|
dataType | |
dataType | SSN |
dataType | CREDIT_CARD |
dataType | US_PHONE |
dataType | STRING |
dataType | BOOLEAN |
dataType | SHORT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | DECIMAL |
dataType | DATE |
dataType | TIME |
dataType | TIMESTAMP |
dataType | TOKEN |
DeactivationInfo
{
"revocationReason": "string",
"message": "string"
}
Deactivated key info
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
revocationReason | string | false | none | Revocation reason |
message | string | false | none | Message |
DecryptData
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"cipher": {
"cipherTextBase64": "string",
"ivBase64": "string"
},
"outputEncoding": "PLAIN"
}
Input for a decrypt operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
aSymmetricParams | AsymmetricCryptoParams | false | none | none |
symmetricParams | SymmetricCryptoParams | false | none | none |
cipher | Cipher | true | none | Includes encrypted data |
outputEncoding | string | false | none | the decrypted result encoding |
Enumerated Values
Property | Value |
---|---|
outputEncoding | PLAIN |
outputEncoding | BASE64 |
outputEncoding | HEX |
Decryptx
{
"encrypted": [
{
"cipherTextBase64": "string",
"ivBase64": "string"
}
],
"params": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"outputEncoding": "PLAIN"
}
Input for multi decrypt operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
encrypted | [Cipher] | true | none | encrypted |
params | SymmetricCryptoParams | false | none | none |
outputEncoding | string | false | none | outputEncoding |
Enumerated Values
Property | Value |
---|---|
outputEncoding | PLAIN |
outputEncoding | BASE64 |
outputEncoding | HEX |
DeriveData
{
"bipDerivationParams": {
"childNumber": 0,
"hardened": true
},
"policyKeyId": "string",
"newGeneratedKey": {
"policyKeyId": "string",
"keyId": "string",
"keyIdEncoding": "PLAIN",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
},
"derivationMode": "CONCAT",
"hash": "SHA1",
"slipDerivationParams": {
"childNumber": 0,
"hardened": true
},
"concatDerivationParams": {
"data": "string",
"isPrefix": true
}
}
Input for a derive operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
bipDerivationParams | SlipDerivationParams | false | none | none |
policyKeyId | string | false | none | none |
newGeneratedKey | NewGeneratedKey | true | none | none |
derivationMode | string | true | none | Derivation Mode |
hash | string | false | none | Hash algorithm |
slipDerivationParams | SlipDerivationParams | false | none | none |
concatDerivationParams | ConcatDerivationParams | false | none | none |
Enumerated Values
Property | Value |
---|---|
derivationMode | CONCAT |
derivationMode | HASH |
derivationMode | SLIP_10 |
hash | SHA1 |
hash | SHA256 |
hash | SHA384 |
hash | SHA512 |
hash | SHA3_256 |
hash | SHA3_384 |
hash | SHA3_512 |
DeriveKeyData
{
"data": "string",
"dataEncoding": "PLAIN",
"size": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | data |
dataEncoding | string | false | none | data encoding |
size | integer(int32) | false | none | key size |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
DetokenizeData
{
"value": "string",
"tweak": "string",
"dataType": "EMAIL",
"format": "string"
}
Detokenize single items with an existing PRF key. Detokenization uses the values and parameters provided in the JSON output of the tokenized data. Note that all data types are input values except for TOKEN which is an output value.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Input value. |
tweak | string | true | none | Changes the tokenization effect. |
dataType | string | true | none | Data type of value. |
format | string | false | none | Defines the tokenization format. Applies to SSN and US_PHONE data types only. |
Enumerated Values
Property | Value |
---|---|
dataType | |
dataType | SSN |
dataType | CREDIT_CARD |
dataType | US_PHONE |
dataType | STRING |
dataType | BOOLEAN |
dataType | SHORT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | DECIMAL |
dataType | DATE |
dataType | TIME |
dataType | TIMESTAMP |
dataType | TOKEN |
DetokenizeResponse
{
"uid": "string",
"tweak": "string",
"value": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uid | string | true | none | PRF key UID. |
tweak | string | true | none | Tokenized tweak. |
value | string | true | none | Array of tokenized values. |
DiffEntry
{
"objectType": "string",
"digestSource": "string",
"uid": "string",
"name": "string",
"partitionId": "string",
"partitionName": "string",
"version": "string",
"detail": "string",
"object type": "string",
"digest source": "string",
"partition id": "string",
"partition name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
objectType | string | false | none | none |
digestSource | string | false | none | none |
uid | string | false | none | UID |
name | string | false | none | Name |
partitionId | string | false | none | Partition ID |
partitionName | string | false | none | none |
version | string | false | none | Version |
detail | string | false | none | Detail |
object type | string | false | none | none |
digest source | string | false | none | none |
partition id | string | false | none | none |
partition name | string | false | none | partition name |
DiffRecord
{
"sectionDiff": "string",
"entriesDiff": [
{
"objectType": "string",
"digestSource": "string",
"uid": "string",
"name": "string",
"partitionId": "string",
"partitionName": "string",
"version": "string",
"detail": "string",
"object type": "string",
"digest source": "string",
"partition id": "string",
"partition name": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sectionDiff | string | false | none | Section diff |
entriesDiff | [DiffEntry] | false | none | Entries diff |
DigestDiff
{
"diffRecords": [
{
"sectionDiff": "string",
"entriesDiff": [
{
"objectType": "string",
"digestSource": "string",
"uid": "string",
"name": "string",
"partitionId": "string",
"partitionName": "string",
"version": "string",
"detail": "string",
"object type": "string",
"digest source": "string",
"partition id": "string",
"partition name": "string"
}
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
diffRecords | [DiffRecord] | false | none | Diff records |
ECCBipKeyInfo
{
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
level | string(byte) | false | read-only | Level (0 for master) |
childNumber | integer(int32) | false | read-only | child number |
hardened | boolean | false | read-only | True if hardened |
chainCode | string | false | read-only | BASE64 chain code |
parentUid | string | false | read-only | the parent uid |
parentFingerprint | integer(int32) | false | read-only | parent fingerprint (The first 32 bits of the identifier) |
ECCKeyInfoType
{
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
Details of ECC public key
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
curve | string | true | none | none |
ecPoint | string | true | none | Encoded public key (EC point) |
eccBipKeyInfo | ECCBipKeyInfo | true | none | none |
Enumerated Values
Property | Value |
---|---|
curve | P256 |
curve | P384 |
curve | P521 |
curve | SECP256K1 |
curve | CURVE25519 |
curve | CURVE448 |
EncryptData
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"clearText": "string",
"dataEncoding": "PLAIN"
}
Input for encryption
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
aSymmetricParams | AsymmetricCryptoParams | false | none | none |
symmetricParams | SymmetricCryptoParams | false | none | none |
clearText | string | true | none | data to encrypt |
dataEncoding | string | false | none | the input data encoding |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
Encryptx
{
"clearTextItems": [
"string"
],
"dataEncoding": "PLAIN",
"params": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
}
}
Input for encryption of multiple values
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
clearTextItems | [string] | true | none | Array of clearText items to encrypt |
dataEncoding | string | false | none | Data encoding |
params | SymmetricCryptoParams | false | none | none |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
ExportedCertificate
{
"certData": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
certData | string | false | none | Cert data |
ExtendedKeyUsage
{
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
}
Certificate x509 extension
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uid | string | true | none | Extension UID |
isCritical | boolean | true | none | Is Extension Critical |
keyUsages | [string] | false | none | Key usages |
GCPKeyStoreTemplate
{
"name": "string",
"secretKey": "string",
"params": {
"keyring_id": "string",
"location": "string"
},
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
secretKey | string | false | none | none |
params | GCPParams | false | none | none |
description | string | false | none | none |
GCPParams
{
"keyring_id": "string",
"location": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
keyring_id | string | false | none | none |
location | string | false | none | none |
HSMKeyStoreTemplate
{
"name": "string",
"secretKey": "string",
"params": {
"URL": "string"
},
"isExternal": true,
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
secretKey | string | false | none | none |
params | HSMParams | false | none | none |
isExternal | boolean | false | none | none |
description | string | false | none | none |
HSMParams
{
"URL": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
URL | string | false | none | none |
IdentityProvider
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]",
"tokenEndpoint": "http://example.com",
"authorizationEndpoint": "http://example.com",
"userinfoEndpoint": "http://example.com",
"jwksUri": "http://example.com",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | Identity Provider name |
description | string | false | none | Identity Provider description |
url | string | false | none | Identity Provider URL |
clientId | string | false | none | Identity Provider clientId |
usedClaims | [string] | false | none | Identity Provider claims used for authentication |
requiredScopes | [string] | false | none | Identity Provider scopes required for authentication |
tokenEndpoint | string(uri) | false | none | Identity Provider token endpoint |
authorizationEndpoint | string(uri) | false | none | Identity Provider authorization endpoint |
userinfoEndpoint | string(uri) | false | none | Identity Provider User Info uri |
jwksUri | string(uri) | false | none | Identity Provider JWKS uri |
supportedClaims | [string] | false | none | Identity Provider supported claims |
supportedScopes | [string] | false | none | Identity Provider supported scopes |
supportedResponseTypes | [string] | false | none | Identity Provider supported response types |
supportedGrantTypes | [string] | false | none | Identity Provider supported grant types |
IdentityProviderListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]",
"tokenEndpoint": "http://example.com",
"authorizationEndpoint": "http://example.com",
"userinfoEndpoint": "http://example.com",
"jwksUri": "http://example.com",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [IdentityProvider] | false | read-only | items |
IdentityProviderUpdates
{
"description": "string",
"url": "string",
"clientId": "string",
"clientSecret": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | Identity Provider description |
url | string | false | none | Identity Provider URL |
clientId | string | false | none | Identity Provider clientId |
clientSecret | string | false | none | Identity Provider clientSecret |
usedClaims | [string] | false | none | Identity Provider claims used for authentication |
requiredScopes | [string] | false | none | Identity Provider scopes required for authentication |
Iv
{
"value": "string",
"encoding": "PLAIN"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Externally provided IV |
encoding | string | false | none | Encoding |
Enumerated Values
Property | Value |
---|---|
encoding | PLAIN |
encoding | BASE64 |
encoding | HEX |
JWKSKey
{
"kid": "0x0083a3c96dd563b329",
"x": "7KTOg6UAP99GsQF43UyxPEjrUKk68Dwo+npP6XrIbBg=",
"y": "tpMGf3UQo/80J+15J10n63NpPoeBowMODj9e1hIyTF4=",
"crv": "P_256",
"use": "sig",
"kty": "EC",
"alg": "ES256"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
kid | string | false | none | Key Id |
x | string | false | none | X |
y | string | false | none | Y |
crv | string | false | read-only | Curve |
use | string | false | read-only | Usage |
kty | string | false | read-only | Key Type |
alg | string | false | read-only | Algorithm |
JWS
{
"value": "eyJraWQiOiJpbnRlZ3JpdHkta2V5IiwiYWxnIjoiRVMyNTYifQ.eyJpZCI6InIxIiwidWlkIjoiMHgwMDY0MjczNWJmNDkyNDNiODciLCJvYmplY3RUeXBlIjoiUFJJVkFURV9LRVkiLCJrZXlGb3JtYXQiOnsidHlwZSI6IlJTQSIsInNpemUiOjIwNDh9LCJrZXlQcm9wZXJ0aWVzIjp7InRydXN0ZWQiOmZhbHNlLCJleHBvcnRUeXBlIjoiTk9OX0VYUE9SVEFCTEUiLCJncm91cHMiOlsiZGVmYXVsdCJdfSwibG9jYWwiOnRydWUsImhhc0NlcnRpZmljYXRlIjpmYWxzZSwic3RhdGUiOiJBQ1RJVkUiLCJzeW5jIjp0cnVlLCJyZXF1aXJlQXBwcm92YWwiOmZhbHNlLCJwa0luZm8iOnsicnNhIjp7InB1YmxpY0V4cG9uZW50IjoiNjU1MzciLCJtb2R1bHVzIjoiMDA6QkQ6MTA6MTc6ODI6QkM6M0U6Mjc6MDI6QUQ6RDI6Mjk6REI6ODQ6ODY6MTE6QjY6RDk6REM6MTA6QjU6M0I6QjU6QTM6NzA6OEY6MUU6QUE6Mzk6MkI6Njc6RTE6Nzk6NzM6RDc6QkU6OTA6RDY6REU6QjQ6REM6OUM6RjY6Nzc6MDg6MTA6RkQ6QzE6N0Y6Qzk6M0Y6RDQ6RTk6OTQ6MDM6NjM6Q0E6RDQ6NUI6NEE6MjE6QUU6Qzg6RjE6RkY6OTU6MzY6RDI6RDE6NzI6QUE6M0I6NEY6RUQ6MjA6MzI6RDk6NDc6QzM6NTk6NDI6MDk6NkI6RUU6Rjc6MjA6NUU6NTA6NjM6ODg6NkU6QzY6NzY6RjI6NjA6QUM6MTM6Mzc6MDE6NDM6NkU6Qzc6NDc6MjA6RTc6NjI6MzI6MjI6REQ6NDA6Qjk6MDk6MjI6M0U6RTc6QkY6NDU6MUM6NzY6OTg6QUM6Rjg6RTA6MjU6Qjg6RDY6NDQ6QTQ6RkM6N0I6Qjc6NkQ6RTc6REM6Q0I6OEM6NjU6MTA6RUM6QUE6RTU6Qzg6RUQ6Q0U6NzI6RUE6RDA6MjU6QjQ6OUQ6MkQ6QkI6REY6QjU6NUQ6QjQ6OTA6NUM6MDI6N0U6MEU6N0E6MjQ6QjM6Qzg6Qjg6RTc6QzM6RDg6NEU6ODI6OUE6NUQ6N0M6QkM6Mzk6MDg6MjA6Njg6NDc6NDc6Rjk6NDc6QkU6MzU6NkE6NUQ6NUQ6NkY6MUI6QTM6QjQ6MUY6QjU6Mjg6Njg6QjU6ODI6QkI6RDQ6NkI6RjQ6RTE6MzI6RDA6Qzg6M0I6MDU6QjA6MzE6RTA6NTQ6NEE6QjY6ODU6NkM6MUY6MkE6QkU6QjQ6MTQ6Q0M6NEE6Mjk6M0E6OEE6RTc6QUI6ODg6RDQ6RTg6OEY6QTE6NkI6RTQ6ODQ6N0Y6NUE6RjU6QzU6QjU6RUY6RDQ6REQ6Mjg6Njc6MjE6Qzg6QkU6OUY6Mzk6QzE6MTQ6Mzk6Q0Y6RDA6REIifX0sImNyZWF0ZWRBdCI6IjIwMTktMDMtMTFUMDg6MzM6NDdaIiwidXBkYXRlZEF0IjoiMjAxOS0wMy0xMVQwODozMzo0OFoifQ.OMsru0JgLra358guXW8jMgCgArlkHdeR0m2rbFLl4yIKLNjxt4TUv3q2IpdUKgeOvWsexBb3VT1TZQ7ON6Y3pA"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | false | read-only | value |
Job
{
"initiator": "so@root",
"id": "389323ee-3588-416e-94bd-f93ca815762e",
"title": "string",
"opName": "PARTITION_CONFIG_SET ",
"createdAt": "string",
"expiresAt": "string",
"opParams": [
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
],
"response": "string",
"approvedBy": [
"string"
],
"status": "PENDING_APPROVAL",
"totalRequiredApprovals": 0
}
An asynchronous job
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
initiator | string | false | read-only | Initiator |
id | string | false | read-only | ID |
title | string | false | read-only | Title |
opName | string | false | read-only | opName |
createdAt | string | false | read-only | Created at |
expiresAt | string | false | read-only | Expires at |
opParams | [KeyValueEntry] | false | read-only | opParams |
response | string | false | read-only | response |
approvedBy | [string] | false | read-only | Approved by |
status | string | false | read-only | status |
totalRequiredApprovals | integer(int32) | false | read-only | Total required approvals |
Enumerated Values
Property | Value |
---|---|
status | PENDING_APPROVAL |
status | PENDING_EXECUTION |
status | DONE |
status | EXPIRED |
Key
{
"keyData": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
keyData | string | false | none | base64 encoded key data |
KeyFormat
{
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | true | none | key type |
size | integer(int32) | false | none | key size |
curve | string | false | none | Required for ecliptic curve |
offlineKeyParams | OfflineKeyParams | false | none | none |
Enumerated Values
Property | Value |
---|---|
type | RSA |
type | ECC |
type | AES |
type | TDES |
type | DES |
type | HMAC |
type | XTS |
type | PRF |
type | PWD |
type | LIMA |
type | EDDSA |
type | TOTSSeed |
type | CHACHA20 |
type | SPLIT_KEY |
curve | P256 |
curve | P384 |
curve | P521 |
curve | SECP256K1 |
curve | CURVE25519 |
curve | CURVE448 |
KeyInfo
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
Key object details
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | read-only | key identifier label |
uid | string | false | read-only | key identifier |
isExternal | boolean | false | read-only | Is key is external |
existsInUkc | boolean | false | none | Exists in ukc |
objectType | string | false | read-only | object type |
keyFormat | KeyFormat | false | none | none |
keyProperties | KeyProperties | false | none | none |
local | boolean | false | read-only | True if this key was created inside UKC, false when imported |
hasCertificate | boolean | false | read-only | True if this key has a matching certificate in UKC |
certificateOnly | boolean | false | read-only | True if this certificate does not have a matching certificate in UKC |
state | string | false | read-only | state |
isEnabled | boolean | false | read-only | Is enabled |
sync | boolean | false | read-only | This key is synchronized in within the UKC pair |
isFips | boolean | false | read-only | This key created in FIPS mode |
cacheTimeout | integer(int32) | false | read-only | This is key cache timeout |
requireApproval | boolean | false | read-only | This key is requires partner approval for sign operations |
prev | string | false | read-only | Does the key have previous key (created by Rekey operation) |
next | string | false | read-only | Does the key have next key (created by Rekey operation) |
nextKeyRotationTime | string | false | read-only | Next key rotation time |
applicationInfos | [ApplicationInfo] | false | read-only | Application infos |
pkInfo | PKInfoType | false | none | Properties of PKI key |
chain | [CertificateInfo] | false | read-only | Private key (RSA/ECC) information |
chains | [array] | false | read-only | Key chains |
createdAt | string | false | read-only | Creation date |
updatedAt | string | false | read-only | Last update date |
activationDate | string | false | read-only | Activation date |
deactivationDate | string | false | read-only | Deactivation date |
compromiseDate | string | false | read-only | Compromise date |
compromiseOccurrenceDate | string | false | read-only | Compromise occurrence date |
keyStoreProperties | KeyStoreProperties | false | none | none |
splitKeyInfo | SplitKeyInfo | false | none | Key object details |
kcv | string | false | read-only | Kcv |
policyKeyId | string | false | read-only | for internal CASP use |
alertLevel | string | false | read-only | alertLevel |
deactivationInfo | DeactivationInfo | false | none | Deactivated key info |
destroyDate | string | false | read-only | Destroy date |
Enumerated Values
Property | Value |
---|---|
objectType | CERTIFICATE |
objectType | PRIVATE_KEY |
objectType | SYMMETRIC |
objectType | PUBLIC_KEY |
objectType | SECRET_DATA |
objectType | SPLIT_KEY |
state | PREACTIVE |
state | ACTIVE |
state | DEACTIVATED |
state | COMPROMISED |
state | DESTROYED |
state | DESTROYED_COMPROMISED |
alertLevel | WARN |
KeyInfoListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"id": "my-key",
"uid": "0x00d78d6a396072e9a0",
"isExternal": true,
"existsInUkc": true,
"objectType": "CERTIFICATE",
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
},
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"local": true,
"hasCertificate": true,
"certificateOnly": true,
"state": "PREACTIVE",
"isEnabled": true,
"sync": true,
"isFips": true,
"cacheTimeout": 0,
"requireApproval": true,
"prev": "string",
"next": "string",
"nextKeyRotationTime": "string",
"applicationInfos": [
{
"nameSpace": "string",
"data": {
"property1": {},
"property2": {}
}
}
],
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"chain": [
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
],
"chains": [
[
{
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
]
],
"createdAt": "string",
"updatedAt": "string",
"activationDate": "string",
"deactivationDate": "string",
"compromiseDate": "string",
"compromiseOccurrenceDate": "string",
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"splitKeyInfo": {
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
},
"kcv": "string",
"policyKeyId": "0x005945c208734d6fa3",
"alertLevel": "WARN",
"deactivationInfo": {
"revocationReason": "string",
"message": "string"
},
"destroyDate": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [KeyInfo] | false | read-only | items |
KeyProperties
{
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | Description for the key |
supportedOperations | [string] | false | none | Key supported operations |
trusted | boolean | false | none | True if the key is trusted |
keyRotationInterval | integer(int32) | false | none | Key rotation interval |
exportType | string | false | none | The default value is IN_PLAIN for certificates and public keys. Otherwise, the default is NOT_EXPORTABLE. |
groups | [string] | false | none | Key groups |
Enumerated Values
Property | Value |
---|---|
exportType | IN_PLAIN |
exportType | WRAPPED |
exportType | WRAPPED_WITH_TRUSTED |
exportType | NON_EXPORTABLE |
KeyStore
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | Key store name |
description | string | false | none | Key store description |
params | object | false | none | Key store params |
» additionalProperties | object | false | none | none |
endpoints | [KeyStoreEndpoint] | false | none | Key store endpoints |
isExternal | boolean | false | none | External key store flag |
status | KeyStoreStatus | false | none | none |
keyStoreSyncPolicy | string | false | none | Key store sync policy |
capabilities | Capabilities | false | none | none |
Enumerated Values
Property | Value |
---|---|
keyStoreSyncPolicy | ALL_ACTIVE |
keyStoreSyncPolicy | ONLY_MODIFIED |
keyStoreSyncPolicy | NONE |
KeyStoreEndpoint
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
url | string | false | none | Endpoint url |
certificateInfo | CertificateInfo | false | none | Certificate public information |
KeyStoreProperties
{
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
keyStoreName | string | true | none | Key store ID |
keyStoreObjectId | string | false | none | Key store Object ID |
keyStoreProtectionMethod | string | false | none | Key store Object Protection Method |
byok | boolean | false | none | Is Byok |
Enumerated Values
Property | Value |
---|---|
keyStoreProtectionMethod | HSM |
keyStoreProtectionMethod | SOFTWARE |
keyStoreProtectionMethod | EXTERNAL |
keyStoreProtectionMethod | DEFAULT |
KeyStoreStatus
{
"keyStoreCode": "STOPPED",
"message": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
keyStoreCode | string | false | none | Key store code |
message | string | false | none | Message |
Enumerated Values
Property | Value |
---|---|
keyStoreCode | STOPPED |
keyStoreCode | UNREGISTERED |
keyStoreCode | RUNNING |
KeyStoreTemplates
{
"GCP": {
"name": "string",
"secretKey": "string",
"params": {
"keyring_id": "string",
"location": "string"
},
"description": "string"
},
"Azure": {
"name": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"URL": "string"
},
"description": "string"
},
"AWSKMS": {
"name": "string",
"accessKeyId": "string",
"secretKey": "string",
"description": "string",
"param": {
"REGION": "string"
}
},
"LunaHSM": {
"name": "string",
"secretKey": "string",
"params": {
"URL": "string"
},
"isExternal": true,
"description": "string"
},
"nCipherHSM": {
"name": "string",
"secretKey": "string",
"params": {
"URL": "string"
},
"isExternal": true,
"description": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
GCP | GCPKeyStoreTemplate | false | none | none |
Azure | AzureKeyStoreTemplate | false | none | none |
AWSKMS | AWSKeyStoreTemplate | false | none | none |
LunaHSM | HSMKeyStoreTemplate | false | none | none |
nCipherHSM | HSMKeyStoreTemplate | false | none | none |
KeyStoreUpdates
{
"description": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"property1": {},
"property2": {}
},
"keyStoreSyncPolicy": "ALL_ACTIVE"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | description |
accessKeyId | string | false | none | accessKeyId |
secretKey | string | false | none | secretKey |
params | object | false | none | params |
» additionalProperties | object | false | none | none |
keyStoreSyncPolicy | string | false | none | Key store sync policy |
Enumerated Values
Property | Value |
---|---|
keyStoreSyncPolicy | ALL_ACTIVE |
keyStoreSyncPolicy | ONLY_MODIFIED |
keyStoreSyncPolicy | NONE |
KeyUpdates
{
"id": "string",
"description": "string",
"splitKeyParts": 0,
"keyPartIdentifier": 0,
"splitKeyThreshold": 0,
"splitKeyMethod": "string",
"groups": [
"string"
],
"activationDate": 0,
"deactivationDate": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | Key ID |
description | string | false | none | Key description |
splitKeyParts | integer(int32) | false | none | Number of parts |
keyPartIdentifier | integer(int32) | false | none | Part identifier |
splitKeyThreshold | integer(int32) | false | none | Threshold |
splitKeyMethod | string | false | none | Threshold |
groups | [string] | false | none | Key groups |
activationDate | integer(int64) | false | read-only | Activation date |
deactivationDate | integer(int64) | false | read-only | Deactivation date |
KeyValueEntry
{
"key": "string",
"value": "string",
"description": "string",
"type": "BOOLEAN",
"defaultValue": "string",
"min": 0,
"max": 0,
"unit": "SECONDS"
}
Key value entry
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
key | string | true | none | key |
value | string | true | none | value |
description | string | false | read-only | quorum timeout |
type | string | false | read-only | value type |
defaultValue | string | false | read-only | default value |
min | integer(int32) | false | read-only | minimum value |
max | integer(int32) | false | read-only | maximum value |
unit | string | false | read-only | unit type |
Enumerated Values
Property | Value |
---|---|
type | BOOLEAN |
type | TEXT |
type | INTEGER |
type | ARRAY |
type | MAP |
type | CERTIFICATE |
type | POLICY |
unit | SECONDS |
unit | MINUTES |
unit | HOURS |
unit | DAYS |
unit | MONTHS |
unit | YEARS |
unit | CHARACTERS |
unit | MILLIS |
KeystoreListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "string",
"description": "string",
"params": {
"property1": {},
"property2": {}
},
"endpoints": [
{
"url": "string",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"isExternal": true,
"status": {
"keyStoreCode": "STOPPED",
"message": "string"
},
"keyStoreSyncPolicy": "ALL_ACTIVE",
"capabilities": {
"keyStoreObjectTypes": [
"KEY"
],
"cryptoOperationTypes": [
"DERIVE"
],
"keyStoreObjectAlgorithmTypes": [
"RSA"
],
"cryptoOperationAlgorithmTypes": [
"PSS_SHA_256"
],
"hashTypes": [
"SHA1"
],
"byokSupport": [
"RSA_IMPORT"
],
"renameSupport": true
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [KeyStore] | false | read-only | items |
Label
{
"value": "string",
"encoding": "PLAIN"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Value |
encoding | string | false | none | Encoding |
Enumerated Values
Property | Value |
---|---|
encoding | PLAIN |
encoding | BASE64 |
encoding | HEX |
MACSignData
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"mode": "GMAC",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 0
}
}
Input for MAC operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | data |
dataEncoding | string | false | none | data encoding |
params | MacCryptoParams | false | none | none |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
MACVerifyData
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"mode": "GMAC",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 0
},
"mac": {
"mac": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzMjM0MjM0MzQyIGRmIGFzZGZhIDMz",
"ivBase64": "string"
}
}
Includes data used for MAC verification
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | data |
dataEncoding | string | false | none | data encoding |
params | MacCryptoParams | false | none | none |
mac | Mac | true | none | none |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
Mac
{
"mac": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzMjM0MjM0MzQyIGRmIGFzZGZhIDMz",
"ivBase64": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
mac | string | false | none | mac |
ivBase64 | string | false | none | base64 encoded Initialize Vector |
MacCryptoParams
{
"mode": "GMAC",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
mode | string | false | none | Mode of operation |
iv | Iv | false | none | none |
tagLength | integer(int32) | false | none | Tag length |
Enumerated Values
Property | Value |
---|---|
mode | GMAC |
mode | CMAC |
mode | X919_3DES_MAC |
mode | HMAC_SHA1 |
mode | HMAC_SHA256 |
mode | HMAC_SHA384 |
mode | HMAC_SHA512 |
mode | HMAC_SHA3_256 |
mode | HMAC_SHA3_384 |
mode | HMAC_SHA3_512 |
NewAndExistingPassword
{
"existingPassword": "string",
"newPassword": "string",
"otp": "815713"
}
New And Existing Password
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
existingPassword | string | true | none | The existing user password |
newPassword | string | true | none | The new password |
otp | string | false | none | User TOTP |
NewClient
{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"activationCodeValidity": 20,
"isTemplate": false,
"persistentClient": true,
"activationCodeLength": 10,
"ipRange": "0.0.0.0/0",
"certificateExpiration": 1578240
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Client name |
checkIp | boolean | false | none | Enforce client ip verification |
allowNat | boolean | false | none | Allow client use NAT |
expiration | integer(int32) | false | none | Client expiration in minutes |
activationCodeValidity | integer(int32) | false | none | Client activation code validity in minutes |
isTemplate | boolean | false | none | Is client is a template client or not |
persistentClient | boolean | false | none | Use ephemeral persistent client (relevant for Templates clients only) |
activationCodeLength | integer(int32) | false | none | Client activation code length (digits) |
ipRange | string | false | none | Client IP range |
certificateExpiration | integer(int32) | false | none | Client certificate validity in minutes |
NewClientWithCertificate
{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Client name |
checkIp | boolean | false | none | Enforce client ip verification |
allowNat | boolean | false | none | Allow client use NAT |
expiration | integer(int32) | false | none | Client expiration in minutes |
persistentClient | boolean | false | none | Use ephemeral persistent client (relevant for Templates clients only) |
alternativeNames | [string] | false | none | Client alternative names |
pfxPassword | string | false | none | The new client PFX password |
csr | string | false | none | The new client Base64 encoded Certificate Request |
publicKey | string | false | none | The new client Base64 encoded ECC Public Key |
certificate | string | false | none | The new certificate PEN or DER encoded |
certificateExpiration | integer(int32) | false | none | Client certificate validity in minutes |
NewClientWithSecret
{
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"ipRange": "0.0.0.0/0",
"grantTypes": [
"CLIENT_CREDENTIALS"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Client name |
checkIp | boolean | false | none | Enforce client ip verification |
allowNat | boolean | false | none | Allow client use NAT |
expiration | integer(int32) | false | none | Client expiration in minutes |
persistentClient | boolean | false | none | Use ephemeral persistent client (relevant for Templates clients only) |
ipRange | string | false | none | Client IP range |
grantTypes | [string] | false | none | Client grant types |
NewGeneratedKey
{
"policyKeyId": "string",
"keyId": "string",
"keyIdEncoding": "PLAIN",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
policyKeyId | string | false | none | none |
keyId | string | true | none | An ID for the new key |
keyIdEncoding | string | false | read-only | Encoding for the new key ID |
keyProperties | KeyProperties | false | none | none |
keyStoreProperties | KeyStoreProperties | false | none | none |
activate | boolean | false | none | Activate the key |
activationDate | integer(int64) | false | none | Activation date |
deactivationDate | integer(int64) | false | none | Deactivation date |
keyFormat | KeyFormat | true | none | none |
Enumerated Values
Property | Value |
---|---|
keyIdEncoding | PLAIN |
keyIdEncoding | BASE64 |
keyIdEncoding | HEX |
NewGeneratedSecret
{
"id": "mySecret1",
"description": "string",
"groups": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | An identifier/label for the secret data |
description | string | false | none | The secret description |
groups | [string] | false | none | Secret groups |
NewIdentityProvider
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"clientSecret": "string",
"usedClaims": "[sub]",
"requiredScopes": "[openid]"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Identity Provider name |
description | string | false | none | Identity Provider description |
url | string | false | none | Identity Provider URL |
clientId | string | false | none | Identity Provider clientId |
clientSecret | string | false | none | Identity Provider clientSecret |
usedClaims | [string] | false | none | Identity Provider claims used for authentication |
requiredScopes | [string] | false | none | Identity Provider scopes required for authentication |
NewKeyStore
{
"name": "string",
"description": "string",
"accessKeyId": "string",
"secretKey": "string",
"params": {
"property1": {},
"property2": {}
},
"isExternal": true,
"keyStoreSyncPolicy": "ALL_ACTIVE"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Key store name |
description | string | false | none | Key store description |
accessKeyId | string | false | none | Key store accessKeyId |
secretKey | string | true | none | Key store secretKey |
params | object | false | none | Key store params |
» additionalProperties | object | false | none | none |
isExternal | boolean | false | none | External key store flag |
keyStoreSyncPolicy | string | false | none | Key store sync policy |
Enumerated Values
Property | Value |
---|---|
keyStoreSyncPolicy | ALL_ACTIVE |
keyStoreSyncPolicy | ONLY_MODIFIED |
keyStoreSyncPolicy | NONE |
NewKeyStoreEndpoint
{
"url": "string",
"pfxPassword": "string",
"san": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
url | string | true | none | Endpoint url |
pfxPassword | string | true | none | Endpoint pfx password |
san | string | false | none | Endpoint subject alternative name |
NewLinkedKey
{
"keyStoreName": "string",
"keyStoreObjectId": "string",
"alias": "string",
"activate": true,
"groups": [
"string"
],
"keyRotationInterval": 0,
"activationDate": 0,
"deactivationDate": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
keyStoreName | string | true | none | Key store ID |
keyStoreObjectId | string | true | none | Key store Object ID |
alias | string | false | none | Key alias |
activate | boolean | false | none | Activate the key |
groups | [string] | false | none | Key groups |
keyRotationInterval | integer(int32) | false | none | Key rotation interval |
activationDate | integer(int64) | false | none | Activation date |
deactivationDate | integer(int64) | false | none | Deactivation date |
NewPair
{
"entryPoint": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
},
"partner": {
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
}
A UKC pair
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entryPoint | NewServer | true | none | An UKC New Server |
partner | NewServer | true | none | An UKC New Server |
NewPartition
{
"name": "string",
"soPassword": "string",
"newClient": {
"name": "client-name",
"checkIp": false,
"allowNat": false,
"expiration": 1578240,
"persistentClient": true,
"alternativeNames": "{client-ip,client-name}",
"pfxPassword": "string",
"csr": "MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh\nMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w\nHQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQQDEw53d3cuZ29v\nZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApZtYJCHJ4VpVXHfV\nIlstQTlO4qC03hjX+ZkPyvdYd1Q4+qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZr\nWFlRQddZ1IzXAlVRDWwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/J\ncIWPhqaQhsJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIhl\n4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68eTf2XhYOsq4fkH\nQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9sdpCoPOnRBm2i/XRD2D\n6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1QW7bn",
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"certificate": "string",
"certificateExpiration": 1578240
},
"inherit": false,
"propagate": false,
"fipsRequirements": "FIPS_NONE",
"isAllowDefaultClient": false,
"allowKeystores": false,
"cacheTimeout": 3600
}
A UKC Partition
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | The new partition name |
soPassword | string | true | none | The new partition SO password |
newClient | NewClientWithCertificate | true | none | none |
inherit | boolean | false | none | Inherit root partition settings |
propagate | boolean | false | none | Support certificate propagation |
fipsRequirements | string | false | none | The Partition FIPS Requirements |
isAllowDefaultClient | boolean | false | none | Allow using default client |
allowKeystores | boolean | false | none | Allow using key stores |
cacheTimeout | integer(int32) | false | none | The partition cache timeout |
Enumerated Values
Property | Value |
---|---|
fipsRequirements | FIPS_MANDATORY |
fipsRequirements | FIPS_PREFERRED |
fipsRequirements | FIPS_NONE |
NewRole
{
"name": "role_name",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | role name |
managedObjectsPermissions | [RolePermission] | true | none | none |
NewSecret
{
"id": "mySecret1",
"description": "string",
"groups": [
"string"
],
"data": "My secret data"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | An identifier/label for the secret data |
description | string | false | none | The secret description |
groups | [string] | false | none | Secret groups |
data | string | true | none | The data to keep as secret |
NewServer
{
"host": "ip or fqdn",
"port": 8443,
"newServerCertificate": {
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
}
An UKC New Server
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
host | string | true | none | The server host |
port | integer(int32) | true | none | The server port |
newServerCertificate | NewServerCertificate | false | none | New server certificate data |
NewServerCertificate
{
"certificate": "string",
"certificateFingerprint": "string",
"certificateInfo": "string"
}
New server certificate data
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
certificate | string | false | none | The server certificate encoded in base64 |
certificateFingerprint | string | false | none | The server certificate fingerprint |
certificateInfo | string | false | none | The server certificate info |
NewUser
{
"password": "Password1!",
"name": "john_a",
"role": "user",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"authType": "STANDARD"
}
A UKC new user
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
password | string | false | none | The user password |
name | string | true | none | name |
role | string | false | none | The user role |
aliases | [UserAliases] | false | none | aliases |
authType | string | false | none | Auth type |
Enumerated Values
Property | Value |
---|---|
authType | STANDARD |
authType | LDAP |
authType | OIDC |
NewUsersGroup
{
"name": "group1",
"roles": "[so, user, signer]",
"users": "[so, user, admin]",
"expression": ".*@somedomain.com"
}
A UKC new users group
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | none |
roles | [string] | false | none | List of all roles in the group |
users | [string] | false | none | List of all users in the group |
expression | string | false | none | A regular expression string |
OAEPPadding
{
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
(Only relevant for encryption) The OAEP padding parameters
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
mgf | string | false | none | mgf |
label | Label | false | none | none |
Enumerated Values
Property | Value |
---|---|
mgf | SHA1 |
mgf | SHA256 |
mgf | SHA384 |
mgf | SHA512 |
mgf | SHA3_256 |
mgf | SHA3_384 |
mgf | SHA3_512 |
OauthToken
{
"access_token": "eyJ...MoQ",
"token_type": "bearer",
"expires_at": "string",
"expires_in": 1000,
"scope": "user",
"refresh_token": "eyJ...0N"
}
Oauth Token
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
access_token | string | false | none | Access Token |
token_type | string | false | none | Token type |
expires_at | string | false | none | Token expiration date |
expires_in | integer(int64) | false | none | The lifetime of the access token, in seconds |
scope | string | false | none | The provided scope (the user Role) |
refresh_token | string | false | none | Refresh Token |
OfflineKeyParams
{
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
backup | string | false | read-only | BASE64 ECDSA offline backup |
paillierKey | string | true | none | EC offline Paillier key public key |
paillierKeys | [string] | true | none | EC offline Paillier keys public key |
PKInfoType
{
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
}
Properties of PKI key
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
rsa | RSAKeyInfoType | false | none | Details of RSA public key |
ecc | ECCKeyInfoType | false | none | Details of ECC public key |
PSSPadding
{
"mgf": "SHA1",
"saltSize": 0
}
(Only relevant for signing) The PSS padding parameters
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
mgf | string | false | none | MGF hash algorithm |
saltSize | integer(int32) | true | none | the salt size |
Enumerated Values
Property | Value |
---|---|
mgf | SHA1 |
mgf | SHA256 |
mgf | SHA384 |
mgf | SHA512 |
mgf | SHA3_256 |
mgf | SHA3_384 |
mgf | SHA3_512 |
Padding
{
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
}
Crypto operation padding type
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | true | none | none |
pss | PSSPadding | false | none | (Only relevant for signing) The PSS padding parameters |
oaep | OAEPPadding | false | none | (Only relevant for encryption) The OAEP padding parameters |
Enumerated Values
Property | Value |
---|---|
type | RAW |
type | PKCS1 |
type | OAEP |
type | PSS |
Pair
{
"entryPoint": {
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
},
"partner": {
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
}
A UKC pair
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entryPoint | Server | false | none | A UKC server |
partner | Server | false | none | A UKC server |
Partition
{
"checkClientIp": true,
"name": "root",
"allowNat": true,
"allowUserOnlyCryptoOperations": true,
"clientRetriesLimit": 0,
"clientRetriesTimeout": 0,
"creationDate": "string",
"getjWTLimit": 0,
"lastUpdate": "string",
"passwordComplexity": true,
"passwordLength": 0,
"quorumOperations": "string",
"quorumSize": 0,
"quorumTimeout": 0,
"supportCertificatePropagation": true,
"supportPartitionInheritance": true,
"userRetriesLimit": 0,
"fipsRequirements": "FIPS_NONE",
"policy": [
{
"type": "RSA",
"minSize": 0,
"curves": [
"P256"
],
"operations": [
"SIGN"
],
"paddings": [
"RAW"
],
"hashes": [
"SHA1"
],
"modes": [
"ECB"
],
"macs": [
"GMAC"
],
"exportType": "IN_PLAIN",
"trusted": true,
"local": true
}
],
"allowKeystores": false,
"enforceTwoFactorAuth": false,
"totpTimeDrift": 30,
"cacheTimeout": 3600,
"jWTExpiration": 0
}
A partitions is used as a logical container for security objects like keys and Certificates
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
checkClientIp | boolean | false | read-only | check clients ip |
name | string | false | read-only | none |
allowNat | boolean | false | read-only | True when allowing NAT |
allowUserOnlyCryptoOperations | boolean | false | read-only | True if user is only allowed to do crypto |
clientRetriesLimit | integer(int32) | false | read-only | client retries limit |
clientRetriesTimeout | integer(int32) | false | read-only | client retries timeout |
creationDate | string | false | read-only | partition creation date |
getjWTLimit | integer(int32) | false | read-only | JWT usage limit |
lastUpdate | string | false | read-only | partition last update |
passwordComplexity | boolean | false | read-only | enforce password complexity |
passwordLength | integer(int32) | false | read-only | partition allowed password length |
quorumOperations | string | false | read-only | quorum operations |
quorumSize | integer(int32) | false | read-only | quorum size |
quorumTimeout | integer(int32) | false | read-only | quorum timeout |
supportCertificatePropagation | boolean | false | read-only | True when supporting certificate propagation |
supportPartitionInheritance | boolean | false | read-only | True when supporting certificate inheritance |
userRetriesLimit | integer(int32) | false | read-only | user retries limit |
fipsRequirements | string | false | none | The Partition FIPS Requirements |
policy | [PartitionPolicyRule] | false | none | The Partition Policy |
allowKeystores | boolean | false | none | Allow using key stores |
enforceTwoFactorAuth | boolean | false | none | Enforce 2FA |
totpTimeDrift | integer(int32) | false | none | TOTP time drift |
cacheTimeout | integer(int32) | false | none | Cache-timeout |
jWTExpiration | integer(int32) | false | read-only | JWT expiration time |
Enumerated Values
Property | Value |
---|---|
fipsRequirements | FIPS_MANDATORY |
fipsRequirements | FIPS_PREFERRED |
fipsRequirements | FIPS_NONE |
PartitionListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"checkClientIp": true,
"name": "root",
"allowNat": true,
"allowUserOnlyCryptoOperations": true,
"clientRetriesLimit": 0,
"clientRetriesTimeout": 0,
"creationDate": "string",
"getjWTLimit": 0,
"lastUpdate": "string",
"passwordComplexity": true,
"passwordLength": 0,
"quorumOperations": "string",
"quorumSize": 0,
"quorumTimeout": 0,
"supportCertificatePropagation": true,
"supportPartitionInheritance": true,
"userRetriesLimit": 0,
"fipsRequirements": "FIPS_NONE",
"policy": [
{
"type": "RSA",
"minSize": 0,
"curves": [
"P256"
],
"operations": [
"SIGN"
],
"paddings": [
"RAW"
],
"hashes": [
"SHA1"
],
"modes": [
"ECB"
],
"macs": [
"GMAC"
],
"exportType": "IN_PLAIN",
"trusted": true,
"local": true
}
],
"allowKeystores": false,
"enforceTwoFactorAuth": false,
"totpTimeDrift": 30,
"cacheTimeout": 3600,
"jWTExpiration": 0
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [Partition] | false | read-only | items |
PartitionPolicyRule
{
"type": "RSA",
"minSize": 0,
"curves": [
"P256"
],
"operations": [
"SIGN"
],
"paddings": [
"RAW"
],
"hashes": [
"SHA1"
],
"modes": [
"ECB"
],
"macs": [
"GMAC"
],
"exportType": "IN_PLAIN",
"trusted": true,
"local": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | true | none | type |
minSize | integer(int32) | false | none | minimum size |
curves | [string] | false | none | allowed curves |
operations | [string] | false | none | allowed operations |
paddings | [string] | false | none | allowed paddings |
hashes | [string] | false | none | allowed hashs |
modes | [string] | false | none | allowed modes |
macs | [string] | false | none | allowed macs |
exportType | string | false | none | minimum export type |
trusted | boolean | false | none | is trusted |
local | boolean | false | none | is local |
Enumerated Values
Property | Value |
---|---|
type | RSA |
type | ECC |
type | AES |
type | TDES |
type | DES |
type | HMAC |
type | XTS |
type | PRF |
type | PWD |
type | LIMA |
type | EDDSA |
type | TOTSSeed |
type | CHACHA20 |
type | SPLIT_KEY |
exportType | IN_PLAIN |
exportType | WRAPPED |
exportType | WRAPPED_WITH_TRUSTED |
exportType | NON_EXPORTABLE |
Password
{
"password": "Password2!"
}
A password
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
password | string | false | none | New user password |
QuorumStatus
{
"pendingApproval": 2,
"pendingExecution": 0
}
Quorum jobs status
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
pendingApproval | integer(int32) | false | read-only | pending approval |
pendingExecution | integer(int32) | false | read-only | pending execution |
RSAKeyInfoType
{
"publicExponent": "string",
"modulus": "string"
}
Details of RSA public key
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicExponent | string | true | none | HEX encoded exponent |
modulus | string | true | none | HEX encoded modulus |
RandomEntropyBytes
{
"entropy": "string"
}
Random Entropy Bytes
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entropy | string | true | none | base64 encoded entropy bytes |
Range
{
"min": "string",
"max": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
min | string | true | none | min value |
max | string | true | none | max value |
RefreshedCertificateClient
{
"certificateExpiration": 1578240,
"activationCodeValidity": 20,
"activationCodeLength": 10,
"ipRange": "0.0.0.0/0",
"generateNewActivationCode": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
certificateExpiration | integer(int32) | false | none | Client certificate validity in minutes |
activationCodeValidity | integer(int32) | false | none | Client activation code validity in minutes |
activationCodeLength | integer(int32) | false | none | Client activation code length (digits) |
ipRange | string | false | none | Client IP range |
generateNewActivationCode | boolean | false | none | Generate new activation code (default true |
RefreshedPublicKeyClient
{
"publicKey": "MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE+Y+qPqI3geo2hQH8eK7Rn+YWG09T\nejZ5QFoj9fmxFrUyYhFap6XmTdJtEi8myBmW",
"expiration": 1578240,
"alternativeNames": "{client-ip,client-name}"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicKey | string | true | none | The new client Base64 encoded ECC Public Key |
expiration | integer(int32) | false | none | Client certificate validity in minutes |
alternativeNames | [string] | false | none | Client alternative names |
RefreshedSecretClient
{
"expiration": 1578240,
"grantTypes": [
"CLIENT_CREDENTIALS"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
expiration | integer(int32) | false | none | Client expiration in minutes |
grantTypes | [string] | false | none | Client grant types |
RevokeParams
{
"message": "string",
"reason": "UNSPECIFIED",
"compromiseOccurrenceDate": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | revocation message |
reason | string | false | none | Revocation reason |
compromiseOccurrenceDate | integer(int64) | false | none | Date when the compromise occurred |
Enumerated Values
Property | Value |
---|---|
reason | UNSPECIFIED |
reason | KEY_COMPROMISE |
reason | CA_COMPROMISE |
reason | AFFILIATION_CHANGED |
reason | SUPERSEDED |
reason | CESSATION_OF_OPERATION |
reason | PRIVILEGE_WITHDRAWN |
Role
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
An ekm role
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | read-only | name |
partition | string | false | read-only | partition |
createdAt | string | false | read-only | created at |
updatedAt | string | false | read-only | updated at |
managedObjectsPermissions | [RolePermission] | false | read-only | managed objects permissions |
RoleListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "role_name",
"partition": "~.codeSign.developers",
"createdAt": "string",
"updatedAt": "string",
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [Role] | false | read-only | items |
RolePermission
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
objectGroup | string | false | none | object group |
operations | [string] | false | none | operations |
SealData
{
"clearText": "string",
"dataEncoding": "PLAIN"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
clearText | string | true | none | Data to seal |
dataEncoding | string | false | none | the data encoding |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
SealedCipher
{
"value": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | base64 encoded sealed value |
Secret
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | An identifier/label for the secret data |
description | string | false | read-only | The secret description |
uid | string | false | read-only | Secret identifier |
groups | [string] | false | none | Secret groups |
createdAt | string | false | read-only | Creation date |
updatedAt | string | false | read-only | Last update date |
SecretListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"id": "mySecret1",
"description": "string",
"uid": "0x00d78d6a396072e9a0",
"groups": [
"string"
],
"createdAt": "string",
"updatedAt": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [Secret] | false | read-only | items |
SecretUpdates
{
"id": "string",
"description": "string",
"groups": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | Key ID |
description | string | false | none | Key description |
groups | [string] | false | none | Secret groups |
Server
{
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
A UKC server
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | read-only | The server name |
host | string | false | read-only | The server host |
role | string | false | read-only | The server role |
status | string | false | read-only | The server status |
os | string | false | read-only | The server operation system |
cores | integer(int32) | false | read-only | The server amount of cores |
cpuLoadPrecents | integer(int32) | false | read-only | The server CPU load |
freeMemMegaBytes | integer(int32) | false | read-only | The server free Mega Bytes |
totalMemMegaBytes | integer(int32) | false | read-only | The server total Mega Bytes |
version | string | false | read-only | The server version |
serverVersionMatch | string | false | read-only | The server version is not compatible |
error | string | false | read-only | The server status error |
lastStart | string | false | read-only | The server last starting time |
requireRestart | string | false | read-only | The server needed to be restarted |
alertLevel | string | false | read-only | alertLevel |
certificateInfo | CertificateInfo | false | none | Certificate public information |
Enumerated Values
Property | Value |
---|---|
role | ENTRYPOINT |
role | PARTNER |
role | AUXILIARY |
status | RUNNING |
status | STOPPED |
alertLevel | WARN |
SignData
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"doHash": true,
"ecdsaMode": "ECDSA",
"paillierKey": "string",
"totsSignData": {
"challengeResponse": "string",
"totsParams": {
"index": 0,
"nof": 1
}
}
}
Input for sign operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | data |
dataEncoding | string | false | none | data encoding |
params | AsymmetricCryptoParams | false | none | none |
doHash | boolean | false | none | do hash or not |
ecdsaMode | string | false | none | ecdsa sign mode |
paillierKey | string | false | none | paillier Key |
totsSignData | TOTSSignData | false | none | none |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
ecdsaMode | ECDSA |
ecdsaMode | SCHNORR |
SignOperationAttributeTemplate
{
"id": "string",
"name": "string",
"description": "string",
"min": "string",
"max": "string",
"templateTypeName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
description | string | false | none | none |
min | string | false | none | none |
max | string | false | none | none |
templateTypeName | string | false | none | none |
SignOperationData
{
"publicKeys": [
"string"
],
"dataToSign": [
"string"
],
"rawTransactions": [
"string"
],
"details": "string",
"operationId": "string",
"data": [
"string"
],
"description": "string",
"signedVaultDeclaration": "string",
"collectedDataGroups": {
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
},
"vaultAttributes": {
"attributes": [
{
"value": "string",
"attributeTemplate": {
"id": "string",
"name": "string",
"description": "string",
"min": "string",
"max": "string",
"templateTypeName": "string"
}
}
]
},
"policyId": "string",
"creationTime": 0,
"ledgerName": "string",
"changePublicKeys": [
"string"
],
"derivedWhitelistChildNumbers": [
0
],
"ukcKeyIds": [
"string"
],
"ledgerHashAlgorithm": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicKeys | [string] | false | none | none |
dataToSign | [string] | false | none | none |
rawTransactions | [string] | false | none | none |
details | string | false | none | none |
operationId | string | false | none | none |
data | [string] | false | none | none |
description | string | false | none | none |
signedVaultDeclaration | string | false | none | none |
collectedDataGroups | CollectedDataGroupsDetails | false | none | none |
vaultAttributes | SignOperationVaultAttributes | false | none | none |
policyId | string | false | none | none |
creationTime | integer(int64) | false | none | none |
ledgerName | string | false | none | none |
changePublicKeys | [string] | false | none | none |
derivedWhitelistChildNumbers | [integer] | false | none | none |
ukcKeyIds | [string] | false | none | none |
ledgerHashAlgorithm | string | false | none | none |
SignOperationVaultAttribute
{
"value": "string",
"attributeTemplate": {
"id": "string",
"name": "string",
"description": "string",
"min": "string",
"max": "string",
"templateTypeName": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | false | none | none |
attributeTemplate | SignOperationAttributeTemplate | false | none | none |
SignOperationVaultAttributes
{
"attributes": [
{
"value": "string",
"attributeTemplate": {
"id": "string",
"name": "string",
"description": "string",
"min": "string",
"max": "string",
"templateTypeName": "string"
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
attributes | [SignOperationVaultAttribute] | false | none | none |
Signature
{
"signature": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzIGRmIGFzZGZhIHNkZmFzZGZhc2Q="
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
signature | string | false | none | base64 encoded signature |
SlipDerivationParams
{
"childNumber": 0,
"hardened": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
childNumber | integer(int32) | true | none | child number |
hardened | boolean | true | none | True if hardened |
SplitKeyInfo
{
"alertLevel": "WARN",
"splitKeyParts": 4,
"keyPartIdentifier": 2,
"splitKeyThreshold": 5,
"splitKeyMethod": "PolynomialSharingGF2_16"
}
Key object details
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
alertLevel | string | false | read-only | alertLevel |
splitKeyParts | integer(int32) | false | read-only | split key parts |
keyPartIdentifier | integer(int32) | false | read-only | key part identifier |
splitKeyThreshold | integer(int32) | false | read-only | split key threshold |
splitKeyMethod | string | false | read-only | split key method |
Enumerated Values
Property | Value |
---|---|
alertLevel | WARN |
splitKeyMethod | XOR |
splitKeyMethod | PolynomialSharingGF2_16 |
splitKeyMethod | PolynomialSharingPrimeField |
splitKeyMethod | PolynomialSharingGF2_8 |
SubjectKeyIdentifier
{
"uid": "string",
"isCritical": true,
"keyId": "string"
}
Certificate x509 extension
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uid | string | true | none | Extension UID |
isCritical | boolean | true | none | Is Extension Critical |
keyId | string | false | read-only | none |
SymmetricCryptoParams
{
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
mode | string | false | none | Mode of operation |
iv | Iv | false | none | none |
aad | Aad | false | none | none |
tagLength | integer(int32) | false | none | For CCM, the value must be between 4 and 16, inclusive, and must be even. For other algorithms, the value must be between 1 and 16, inclusive. |
Enumerated Values
Property | Value |
---|---|
mode | ECB |
mode | CBC |
mode | OFB |
mode | CFB |
mode | CTR |
mode | GCM |
mode | CCM |
mode | XTS |
mode | NISTWRAP |
mode | CHACHA20 |
mode | CHACHA20_POLY_1305 |
SystemCertificate
{
"id": "my-certificate",
"role": "ROOT_CA",
"subject": "string",
"validUntil": "string",
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"version": "V3",
"alertLevel": "WARN",
"uid": "string",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"issuer": "string",
"validFrom": "string",
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"sha1Thumbprint": "string",
"signature": "string",
"isCa": true,
"isSelfSigned": true
}
Certificate public information
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Certificate identifier label |
role | string | false | read-only | The server certificate role (EP, PARTNER, AUXILIARY, ROOT_CA) |
subject | string | true | none | subject |
validUntil | string | true | none | Date of of validity period end for this certificate |
subjectAlternativeNames | AlternativeNames | false | none | Certificate x509 extension |
version | string | true | none | Certificate version |
alertLevel | string | false | read-only | alertLevel |
uid | string | true | none | UID |
serial | string | true | none | Certificate serial number |
signatureAlgorithm | string | true | none | Signing algorithm used for signing this certificate |
issuer | string | true | none | The CA that signed this certificate |
validFrom | string | true | none | Date of of validity period start for this certificate |
pkInfo | PKInfoType | true | none | Properties of PKI key |
basicConstraints | BasicConstraints | false | none | Certificate x509 extension |
subjectKeyIdentifier | SubjectKeyIdentifier | false | none | Certificate x509 extension |
authorityKeyIdentifier | AuthorityKeyIdentifier | false | none | Certificate x509 extension |
issuerAlternativeNames | AlternativeNames | false | none | Certificate x509 extension |
extendedKeyUsage | ExtendedKeyUsage | false | none | Certificate x509 extension |
sha1Thumbprint | string | true | none | certificate sha1 |
signature | string | true | none | CA signature value for this certificate |
isCa | boolean | true | none | Determines if this certificate is a CA certificate |
isSelfSigned | boolean | true | none | Determines if this certificate is a self signed certificate |
Enumerated Values
Property | Value |
---|---|
role | ROOT_CA |
role | ENTRYPOINT |
role | PARTNER |
role | AUXILIARY |
alertLevel | WARN |
SystemInfo
{
"version": "2.0.1",
"lastActivityAt": "string",
"allowedOperations": "{Create,Destroy,Sign,...}",
"allowedPartitions": "{part1, part2, ...}",
"alerts": [
{
"category": "CLIENTS",
"alertType": "CERT_ABOUT_TO_EXPIRE",
"alertLevel": "WARN",
"counter": 0,
"title": "string"
}
],
"allowedCryptoAlgorithms": "{RSA,DES,AES,...}",
"allowedDigitalSignatureAlgorithms": "{ECDSAWithSHA_1,ECDSAWithSHA256,ECDSAWithSHA384,...}",
"allowedHashingAlgorithms": "{SHA_1,SHA_224,SHA_256,...}",
"allowedBlockCipherModes": "{CBC,ECB,CFB,...}",
"allowedPaddings": "{RSA,DES,AES,...}",
"allowedCurves": "{SECP256K1,CURVE25519,CURVE448,...}"
}
Include information on UKC server
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | string | false | read-only | UKC server version |
lastActivityAt | string | false | read-only | none |
allowedOperations | [string] | false | read-only | A list of operation ID's that represent the operations that the current user is allowed to use. Should match the operation ID's as specified in this document |
allowedPartitions | [string] | false | read-only | the partitions on which the user can contact them |
alerts | [AlertsSummary] | false | read-only | none |
allowedCryptoAlgorithms | [string] | false | read-only | A list of allowed Crypto algorithm |
allowedDigitalSignatureAlgorithms | [string] | false | read-only | A list of allowed digital signature algorithm |
allowedHashingAlgorithms | [string] | false | read-only | A list of allowed hashing algorithm |
allowedBlockCipherModes | [string] | false | read-only | A list of allowed BlockCipher mode |
allowedPaddings | [string] | false | read-only | A list of allowed padding method |
allowedCurves | [string] | false | read-only | A list of allowed recommended curves |
TOTSChallengeData
{
"paillierKey": "string",
"message": "string",
"dataEncoding": "PLAIN",
"totsParams": {
"index": 0,
"nof": 1
}
}
Input for challenge operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
paillierKey | string | true | none | Paillier Key |
message | string | false | none | Message to be signed with challenge response |
dataEncoding | string | false | none | data encoding |
totsParams | TOTSParams | true | none | none |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
TOTSParams
{
"index": 0,
"nof": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
index | integer(int32) | true | none | index of ephemeral TOTS derived key |
nof | integer(int32) | true | none | Number of fragments - the Security level of the signature (1, 2, or 3) |
TOTSSignData
{
"challengeResponse": "string",
"totsParams": {
"index": 0,
"nof": 1
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
challengeResponse | string | false | none | challenge response for TOTS offline mode |
totsParams | TOTSParams | true | none | none |
Token
{
"value": "eyJraWQiOiIweDAwMGNhZGQ5ODZiNWMwYTM5NCIsImFsZyI6IkVTMjU2In0.eyJzdWIiOiJzb0BhenVyZSIsIm9yaWciOiIxMjcuMC4wLjEiLCJpc3MiOiJVTkJPVU5EIiwiaXNfcmVmcmVzaCI6ZmFsc2UsImV4cCI6MTU4MjQ0OTczNSwiaWF0IjoxNTgyNDQ3OTM1LCJqdGkiOiI5YWE0YjhiYi1kMGM4LTQxODEtYjhlMC0zYWQ4ODkzYjg1ZjcifQ.jqwC3O4XuIb678uVsBkWh-bBpvumnEIoFtde-xdBcF9CpUnqC1FURw6dpDeIb9TZvIzXDsjusucwv-JjjYbUYA"
}
Auth Token
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | The generated authentication token |
TokenizeData
{
"value": "string",
"tweak": "string",
"dataType": "EMAIL",
"format": "string",
"maxSize": 40
}
Tokenize single items with a PRF key. Note that all data types are input values except for TOKEN which is an output value.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | Input value. |
tweak | string | true | none | Changes the tokenization effect. |
dataType | string | true | none | Data type of value. |
format | string | false | none | Defines the tokenization format. Applies to SSN and US_PHONE data types only. |
maxSize | integer(int32) | false | none | The operation parameters |
Enumerated Values
Property | Value |
---|---|
dataType | |
dataType | SSN |
dataType | CREDIT_CARD |
dataType | US_PHONE |
dataType | STRING |
dataType | BOOLEAN |
dataType | SHORT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | DECIMAL |
dataType | DATE |
dataType | TIME |
dataType | TIMESTAMP |
dataType | TOKEN |
TokenizeResponse
{
"uid": "string",
"tweak": "string",
"value": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uid | string | true | none | PRF key UID. |
tweak | string | true | none | Tokenized tweak. |
value | string | true | none | Array of tokenized values. |
TokenizeX
{
"valueItems": [
"string"
],
"tweak": "string",
"dataType": "EMAIL",
"format": "string",
"maxSize": 40
}
Tokenize multiple items with a PRF key. Note that all data types are input values except for TOKEN which is an output value.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
valueItems | [string] | true | none | Array of input values to tokenize. |
tweak | string | true | none | Changes the tokenization effect. |
dataType | string | true | none | Data type of valueItems. |
format | string | false | none | Defines the tokenization format. Applies to SSN and US_PHONE data types only. |
maxSize | integer(int32) | false | none | The operation parameters |
Enumerated Values
Property | Value |
---|---|
dataType | |
dataType | SSN |
dataType | CREDIT_CARD |
dataType | US_PHONE |
dataType | STRING |
dataType | BOOLEAN |
dataType | SHORT |
dataType | INTEGER |
dataType | LONG |
dataType | FLOAT |
dataType | DOUBLE |
dataType | DECIMAL |
dataType | DATE |
dataType | TIME |
dataType | TIMESTAMP |
dataType | TOKEN |
Topology
{
"pairs": [
{
"entryPoint": {
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
},
"partner": {
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
}
],
"auxiliaries": [
{
"name": "string",
"host": "string",
"role": "ENTRYPOINT",
"status": "RUNNING",
"os": "string",
"cores": 0,
"cpuLoadPrecents": 0,
"freeMemMegaBytes": 0,
"totalMemMegaBytes": 0,
"version": "string",
"serverVersionMatch": "string",
"error": "string",
"lastStart": "string",
"requireRestart": "string",
"alertLevel": "WARN",
"certificateInfo": {
"id": "my-certificate",
"uid": "string",
"sha1Thumbprint": "string",
"subject": "string",
"issuer": "string",
"validFrom": "string",
"validUntil": "string",
"version": "V3",
"serial": "185fb61e97f55b19",
"signatureAlgorithm": "sha256RSA",
"isCa": true,
"isSelfSigned": true,
"pkInfo": {
"rsa": {
"publicExponent": "string",
"modulus": "string"
},
"ecc": {
"curve": "P256",
"ecPoint": "string",
"eccBipKeyInfo": {
"level": "string",
"childNumber": 0,
"hardened": true,
"chainCode": "string",
"parentUid": "string",
"parentFingerprint": 0
}
}
},
"basicConstraints": {
"uid": "string",
"isCritical": true,
"pathLen": 0,
"isCa": true
},
"subjectKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string"
},
"authorityKeyIdentifier": {
"uid": "string",
"isCritical": true,
"keyId": "string",
"authNames": [
"string"
],
"serialNumber": "string"
},
"subjectAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"issuerAlternativeNames": {
"uid": "string",
"isCritical": true,
"names": [
"string"
]
},
"extendedKeyUsage": {
"uid": "string",
"isCritical": true,
"keyUsages": [
"string"
]
},
"signature": "string",
"alertLevel": "WARN"
}
}
],
"triplets": [
{
"entryPoint": "string",
"partner": "string",
"auxiliary": "string",
"connected": true
}
]
}
A UKC server topology
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
pairs | [Pair] | false | read-only | Pairs |
auxiliaries | [Server] | false | read-only | Auxiliaries |
triplets | [Triplet] | false | read-only | Triplets |
Triplet
{
"entryPoint": "string",
"partner": "string",
"auxiliary": "string",
"connected": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entryPoint | string | false | read-only | Entry Point name |
partner | string | false | read-only | Partner name |
auxiliary | string | false | read-only | Auxiliary name |
connected | boolean | false | read-only | Is Triplet connected |
TwoFactorAuthSecretResponse
{
"name": "string",
"totpUrl": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | The Enrolled user name |
totpUrl | string | false | none | The totp auth url |
UnSealData
{
"cipher": {
"value": "string"
},
"outputEncoding": "PLAIN"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
cipher | SealedCipher | true | none | none |
outputEncoding | string | false | none | output encoding |
Enumerated Values
Property | Value |
---|---|
outputEncoding | PLAIN |
outputEncoding | BASE64 |
outputEncoding | HEX |
UnwrapData
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"keyData": "string",
"newGeneratedKey": {
"policyKeyId": "string",
"keyId": "string",
"keyIdEncoding": "PLAIN",
"keyProperties": {
"description": "string",
"supportedOperations": [
"SIGN"
],
"trusted": false,
"keyRotationInterval": 0,
"exportType": "IN_PLAIN",
"groups": [
"string"
]
},
"keyStoreProperties": {
"keyStoreName": "string",
"keyStoreObjectId": "string",
"keyStoreProtectionMethod": "HSM, Software, External or Default ",
"byok": true
},
"activate": true,
"activationDate": 0,
"deactivationDate": 0,
"keyFormat": {
"type": "RSA",
"size": "for RSA : {2048,3072,4096}",
"curve": "P256",
"offlineKeyParams": {
"backup": "string",
"paillierKey": "string",
"paillierKeys": [
"string"
]
}
}
}
}
Input for unwrap operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
aSymmetricParams | AsymmetricCryptoParams | false | none | none |
symmetricParams | SymmetricCryptoParams | false | none | none |
keyData | string | true | none | optional key data to import |
newGeneratedKey | NewGeneratedKey | true | none | none |
UpdatedRole
{
"managedObjectsPermissions": [
{
"objectGroup": "string",
"operations": [
"ACTIVATE"
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
managedObjectsPermissions | [RolePermission] | false | none | managed objects permissions |
UpdatedSecret
{
"data": "My secret data"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | The data to keep as secret |
User
{
"name": "john_a",
"partition": "~.codeSign.developers",
"role": "string",
"createdAt": "string",
"lastActivityAt": "string",
"retries": 0,
"authType": "STANDARD",
"lastUpdateAt": "string",
"lastPasswordUpdated": "string",
"is2FAEnrolled": true,
"lastEnrolledAt": "string",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"groups": "[groupA, groupB]",
"isLoginLocked": true
}
A UKC user
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | read-only | name |
partition | string | false | read-only | partition |
role | string | false | read-only | role |
createdAt | string | false | read-only | created at |
lastActivityAt | string | false | read-only | last activity at |
retries | integer(int32) | false | read-only | retries |
authType | string | false | read-only | auth type |
lastUpdateAt | string | false | read-only | last update at |
lastPasswordUpdated | string | false | read-only | last password updated |
is2FAEnrolled | boolean | false | read-only | is2FAEnrolled |
lastEnrolledAt | string | false | read-only | lastEnrolledAt |
aliases | [UserAliases] | false | read-only | aliases |
groups | [string] | false | read-only | none |
isLoginLocked | boolean | false | read-only | is login locked |
Enumerated Values
Property | Value |
---|---|
authType | STANDARD |
authType | LDAP |
authType | OIDC |
UserAliases
{
"identityProviderName": "string",
"aliases": [
{}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
identityProviderName | string | true | none | The Identity Provider Name |
aliases | [object] | true | none | Aliases |
UserListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "john_a",
"partition": "~.codeSign.developers",
"role": "string",
"createdAt": "string",
"lastActivityAt": "string",
"retries": 0,
"authType": "STANDARD",
"lastUpdateAt": "string",
"lastPasswordUpdated": "string",
"is2FAEnrolled": true,
"lastEnrolledAt": "string",
"aliases": [
{
"identityProviderName": "string",
"aliases": [
{}
]
}
],
"groups": "[groupA, groupB]",
"isLoginLocked": true
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [User] | false | read-only | items |
UsersGroup
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
A UKC users group
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | read-only | none |
partition | string | false | read-only | none |
expression | string | false | none | A regular expression string |
createdAt | string | false | read-only | none |
updatedAt | string | false | read-only | none |
users | [string] | false | none | List of all users in the group |
roles | [string] | false | none | List of all roles in the group |
UsersGroupListResponse
{
"totalItems": 0,
"limit": 0,
"skip": 0,
"nextPageToken": "string",
"items": [
{
"name": "string",
"partition": "string",
"expression": ".*@somedomain.com",
"createdAt": "string",
"updatedAt": "string",
"users": "[so, user, admin]",
"roles": "[so, user, signer]"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | read-only | totalItems |
limit | integer(int32) | false | read-only | limit |
skip | integer(int32) | false | read-only | skip |
nextPageToken | string | false | none | nextPageToken |
items | [UsersGroup] | false | read-only | items |
VerifyData
{
"data": "string",
"dataEncoding": "PLAIN",
"params": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"doHash": true,
"signature": {
"signature": "c2Rmc2FkZmFzZGZhIHNkZmFzZGZzIGRmIGFzZGZhIHNkZmFzZGZhc2Q="
}
}
Includes data used for signature verification
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | data |
dataEncoding | string | false | none | data encoding |
params | AsymmetricCryptoParams | false | none | none |
doHash | boolean | false | none | do hash or not |
signature | Signature | true | none | none |
Enumerated Values
Property | Value |
---|---|
dataEncoding | PLAIN |
dataEncoding | BASE64 |
dataEncoding | HEX |
WrapData
{
"aSymmetricParams": {
"padding": {
"type": "RAW",
"pss": {
"mgf": "SHA1",
"saltSize": 0
},
"oaep": {
"mgf": "SHA1",
"label": {
"value": "string",
"encoding": "PLAIN"
}
}
},
"hash": "SHA1"
},
"symmetricParams": {
"mode": "ECB",
"iv": {
"value": "string",
"encoding": "PLAIN"
},
"aad": {
"value": "string",
"encoding": "PLAIN"
},
"tagLength": 16
},
"wrappedKeyId": "string"
}
Input for the Wrap operation
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
aSymmetricParams | AsymmetricCryptoParams | false | none | none |
symmetricParams | SymmetricCryptoParams | false | none | none |
wrappedKeyId | string | true | none | ID of the wrapped key |