SYSTEMS AND METHODS FOR PKCS #8 PRIVATE FILE KEY SUPPORT
A communications platform may provide asymmetric cryptography using RSA and/or DSA algorithms using a public and private key pair. The communications platform and corresponding cryptographic function library may be modified to add compatibility with multiple public-key cryptography standards (PKCS). Compatibility with PKCS #8 format may enable the communications platform to receive and decrypt encrypted private key files from another communications platform.
1 . A method of transferring private key files between two or more communications platforms, the method comprising:
receiving, by a server comprising at least one processor, a private key file;
determining that a header type of the private key file is in a first type of private key file format;
determining that the server has compatibility with the first type of private key file format;
determining that the private key file is encrypted;
calling one or more first cryptographic functions from a cryptographic function library, the one or more cryptographic functions being compatible with the first type of private key file format; and
executing the one or more cryptographic functions.
2 . The method of claim 1 , further comprising:
determining that a header type of the private key tile is in a second type of private key file format; and
calling one or more second cryptographic functions from a cryptographic function library, the one or more cryptographic functions being compatible with the second type of private key file format.
3 . The method of claim 1 , where determining that the server has compatibility with the first type of private key file format is performed upon initialization of the server.
4 . The method of claim 1 , further comprising:
determining that the server does not have compatibility with the first type of private key file format; and
sending at least one error message.
5 . The method of claim 1 , where the one or more first cryptographic functions comprise a password for decrypting the private key file.
6 . The method of claim 1 , further comprising:
receiving an incorrect password for the private key file; and
sending at least one error message.
7 . A computer program product, comprising:
a non-transitory computer readable medium comprising:
code to receive a command from an operator;
code to receive, by a server comprising at least one processor, a private key file;
code to determine that a header type of the private key file is in a first type of private key file format;
code to determine that the server has compatibility with the first type of private key file format;
code to determine that the private key file is encrypted;
code to call one or more first cryptographic functions from a cryptographic function library, the one or more cryptographic functions being compatible with the first type of private key file format; and
code to execute the one or more cryptographic functions.
8 . The computer program product of claim 7 , further comprising:
code to determine that a header type of the private key file is in a second type of private key file format; and
code to call one or more second cryptographic functions from a cryptographic function library, the one or more cryptographic functions being compatible with the second type of private key tile format.
9 . The computer program product of claim 7 , where determining that the server has compatibility with the first type of private key file format is performed upon initialization of the server.
10 . The computer program product of claim 7 , further comprising:
code to determine that the server does not have compatibility with the first type of private key file format; and
code to send at least one error message.
11 . The computer program product of claim 7 , where the one or more first cryptographic functions comprise a password for decrypting the private key file.
12 . The computer program product of claim 7 , further comprising:
code to receive an incorrect password for the private key file; and
code to send at least one error message.
13 . An apparatus, comprising:
a memory for storing a database; and
a processor coupled to the memory, in which the processor is configured:
to receive, by a server comprising at least one processor, a private key file;
to determine that a header type of the private key file is in a first type of private key file format;
to determine that the server has compatibility with the first type of private key file format;
to determine that the private key file is encrypted;
to call one or more first cryptographic functions from a cryptographic function library, the one or more cryptographic functions being compatible with the first type of private key file format; and
to execute the one or more cryptographic functions.
14 . The apparatus of claim 13 , where the processor is further configured:
to determine that a header type of the private key file is in a second type of private key file format; and
to call one or more second cryptographic functions from a cryptographic function library, the one or more cryptographic functions being compatible with the second type of private key file format.
15 . The apparatus of claim 13 , where the processor determines that the server has compatibility with the first type of private key file format upon initialization of the server.
16 . The apparatus of claim 13 , where the processor is further configured:
to determine that the server does not have compatibility with the first type of private key file format; and
to send at least one error message.
17 . The apparatus of claim 13 , where the one or more first cryptographic functions comprise a password for decrypting the private key file.
18 . The apparatus of claim 13 , where the processor is further configured:
to receive an incorrect password for the private key file; and
to send at least one error message.