Update SoftHSM v2.0 to the latest version
[aaf/sshsm.git] / SoftHSMv2 / src / lib / SoftHSM.h
index 323f3a5..6456cbe 100644 (file)
@@ -46,6 +46,8 @@
 #include "DSAPrivateKey.h"
 #include "ECPublicKey.h"
 #include "ECPrivateKey.h"
+#include "EDPublicKey.h"
+#include "EDPrivateKey.h"
 #include "DHPublicKey.h"
 #include "DHPrivateKey.h"
 #include "GOSTPublicKey.h"
@@ -291,6 +293,20 @@ private:
                CK_BBOOL isPrivateKeyOnToken,
                CK_BBOOL isPrivateKeyPrivate
        );
+       CK_RV generateED
+       (
+               CK_SESSION_HANDLE hSession,
+               CK_ATTRIBUTE_PTR pPublicKeyTemplate,
+               CK_ULONG ulPublicKeyAttributeCount,
+               CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
+               CK_ULONG ulPrivateKeyAttributeCount,
+               CK_OBJECT_HANDLE_PTR phPublicKey,
+               CK_OBJECT_HANDLE_PTR phPrivateKey,
+               CK_BBOOL isPublicKeyOnToken,
+               CK_BBOOL isPublicKeyPrivate,
+               CK_BBOOL isPrivateKeyOnToken,
+               CK_BBOOL isPrivateKeyPrivate
+       );
        CK_RV generateDH
        (
                CK_SESSION_HANDLE hSession,
@@ -328,6 +344,15 @@ private:
                CK_BBOOL isPrivateKeyOnToken,
                CK_BBOOL isPrivateKeyPrivate
        );
+       CK_RV generateGeneric
+       (
+               CK_SESSION_HANDLE hSession,
+               CK_ATTRIBUTE_PTR pTemplate,
+               CK_ULONG ulCount,
+               CK_OBJECT_HANDLE_PTR phKey,
+               CK_BBOOL isOnToken,
+               CK_BBOOL isPrivate
+       );
        CK_RV deriveDH
        (
                CK_SESSION_HANDLE hSession,
@@ -340,6 +365,7 @@ private:
                CK_BBOOL isOnToken,
                CK_BBOOL isPrivate
        );
+#ifdef WITH_ECC
        CK_RV deriveECDH
        (
                CK_SESSION_HANDLE hSession,
@@ -352,6 +378,21 @@ private:
                CK_BBOOL isOnToken,
                CK_BBOOL isPrivate
        );
+#endif
+#ifdef WITH_EDDSA
+       CK_RV deriveEDDSA
+       (
+               CK_SESSION_HANDLE hSession,
+               CK_MECHANISM_PTR pMechanism,
+               CK_OBJECT_HANDLE hBaseKey,
+               CK_ATTRIBUTE_PTR pTemplate,
+               CK_ULONG ulCount,
+               CK_OBJECT_HANDLE_PTR phKey,
+               CK_KEY_TYPE keyType,
+               CK_BBOOL isOnToken,
+               CK_BBOOL isPrivate
+       );
+#endif
        CK_RV deriveSymmetric
        (
                CK_SESSION_HANDLE hSession,
@@ -379,9 +420,12 @@ private:
        CK_RV getDSAPublicKey(DSAPublicKey* publicKey, Token* token, OSObject* key);
        CK_RV getECPrivateKey(ECPrivateKey* privateKey, Token* token, OSObject* key);
        CK_RV getECPublicKey(ECPublicKey* publicKey, Token* token, OSObject* key);
+       CK_RV getEDPrivateKey(EDPrivateKey* privateKey, Token* token, OSObject* key);
+       CK_RV getEDPublicKey(EDPublicKey* publicKey, Token* token, OSObject* key);
        CK_RV getDHPrivateKey(DHPrivateKey* privateKey, Token* token, OSObject* key);
        CK_RV getDHPublicKey(DHPublicKey* publicKey, DHPrivateKey* privateKey, ByteString& pubParams);
        CK_RV getECDHPublicKey(ECPublicKey* publicKey, ECPrivateKey* privateKey, ByteString& pubData);
+       CK_RV getEDDHPublicKey(EDPublicKey* publicKey, EDPrivateKey* privateKey, ByteString& pubData);
        CK_RV getGOSTPrivateKey(GOSTPrivateKey* privateKey, Token* token, OSObject* key);
        CK_RV getGOSTPublicKey(GOSTPublicKey* publicKey, Token* token, OSObject* key);
        CK_RV getSymmetricKey(SymmetricKey* skey, Token* token, OSObject* key);