summaryrefslogtreecommitdiff
path: root/p11p-daemon/src/p11p_rpc.hrl
diff options
context:
space:
mode:
Diffstat (limited to 'p11p-daemon/src/p11p_rpc.hrl')
-rw-r--r--p11p-daemon/src/p11p_rpc.hrl160
1 files changed, 160 insertions, 0 deletions
diff --git a/p11p-daemon/src/p11p_rpc.hrl b/p11p-daemon/src/p11p_rpc.hrl
index c511e20..0014f57 100644
--- a/p11p-daemon/src/p11p_rpc.hrl
+++ b/p11p-daemon/src/p11p_rpc.hrl
@@ -16,3 +16,163 @@
state = header :: header | opts | data | done
}).
-type p11rpc_msg() :: #p11rpc_msg{}.
+
+%% From p11-kit/rpc-message.h.
+-define(P11_RPC_CALL_ERROR, 0).
+-define(P11_RPC_CALL_C_Initialize, 1).
+-define(P11_RPC_CALL_C_Finalize, 2).
+-define(P11_RPC_CALL_C_GetInfo, 3).
+-define(P11_RPC_CALL_C_GetSlotList, 4).
+-define(P11_RPC_CALL_C_GetSlotInfo, 5).
+-define(P11_RPC_CALL_C_GetTokenInfo, 6).
+-define(P11_RPC_CALL_C_GetMechanismList, 7).
+-define(P11_RPC_CALL_C_GetMechanismInfo, 8).
+-define(P11_RPC_CALL_C_InitToken, 9).
+-define(P11_RPC_CALL_C_OpenSession, 10).
+-define(P11_RPC_CALL_C_CloseSession, 11).
+-define(P11_RPC_CALL_C_CloseAllSessions, 12).
+-define(P11_RPC_CALL_C_GetSessionInfo, 13).
+-define(P11_RPC_CALL_C_InitPIN, 14).
+-define(P11_RPC_CALL_C_SetPIN, 15).
+-define(P11_RPC_CALL_C_GetOperationState, 16).
+-define(P11_RPC_CALL_C_SetOperationState, 17).
+-define(P11_RPC_CALL_C_Login, 18).
+-define(P11_RPC_CALL_C_Logout, 19).
+-define(P11_RPC_CALL_C_CreateObject, 20).
+-define(P11_RPC_CALL_C_CopyObject, 21).
+-define(P11_RPC_CALL_C_DestroyObject, 22).
+-define(P11_RPC_CALL_C_GetObjectSize, 23).
+-define(P11_RPC_CALL_C_GetAttributeValue, 24).
+-define(P11_RPC_CALL_C_SetAttributeValue, 25).
+-define(P11_RPC_CALL_C_FindObjectsInit, 26).
+-define(P11_RPC_CALL_C_FindObjects, 27).
+-define(P11_RPC_CALL_C_FindObjectsFinal, 28).
+-define(P11_RPC_CALL_C_EncryptInit, 29).
+-define(P11_RPC_CALL_C_Encrypt, 30).
+-define(P11_RPC_CALL_C_EncryptUpdate, 31).
+-define(P11_RPC_CALL_C_EncryptFinal, 32).
+-define(P11_RPC_CALL_C_DecryptInit, 33).
+-define(P11_RPC_CALL_C_Decrypt, 34).
+-define(P11_RPC_CALL_C_DecryptUpdate, 35).
+-define(P11_RPC_CALL_C_DecryptFinal, 36).
+-define(P11_RPC_CALL_C_DigestInit, 37).
+-define(P11_RPC_CALL_C_Digest, 38).
+-define(P11_RPC_CALL_C_DigestUpdate, 39).
+-define(P11_RPC_CALL_C_DigestKey, 40).
+-define(P11_RPC_CALL_C_DigestFinal, 41).
+-define(P11_RPC_CALL_C_SignInit, 42).
+-define(P11_RPC_CALL_C_Sign, 43).
+-define(P11_RPC_CALL_C_SignUpdate, 44).
+-define(P11_RPC_CALL_C_SignFinal, 45).
+-define(P11_RPC_CALL_C_SignRecoverInit, 46).
+-define(P11_RPC_CALL_C_SignRecover, 47).
+-define(P11_RPC_CALL_C_VerifyInit, 48).
+-define(P11_RPC_CALL_C_Verify, 49).
+-define(P11_RPC_CALL_C_VerifyUpdate, 50).
+-define(P11_RPC_CALL_C_VerifyFinal, 51).
+-define(P11_RPC_CALL_C_VerifyRecoverInit, 52).
+-define(P11_RPC_CALL_C_VerifyRecover, 53).
+-define(P11_RPC_CALL_C_DigestEncryptUpdate, 54).
+-define(P11_RPC_CALL_C_DecryptDigestUpdate, 55).
+-define(P11_RPC_CALL_C_SignEncryptUpdate, 60).
+-define(P11_RPC_CALL_C_DecryptVerifyUpdate, 61).
+-define(P11_RPC_CALL_C_GenerateKey, 62).
+-define(P11_RPC_CALL_C_GenerateKeyPair, 63).
+-define(P11_RPC_CALL_C_WrapKey, 64).
+-define(P11_RPC_CALL_C_UnwrapKey, 65).
+-define(P11_RPC_CALL_C_DeriveKey, 66).
+-define(P11_RPC_CALL_C_SeedRandom, 67).
+-define(P11_RPC_CALL_C_GenerateRandom, 68).
+-define(P11_RPC_CALL_C_WaitForSlotEvent, 69).
+-define(P11_RPC_CALL_MAX, 70).
+
+%% Return values, some of them. From pcks11.h.
+-define(CKR_OK, 0).
+-define(CKR_GENERAL_ERROR, 5).
+-define(CKR_FUNCTION_FAILED, 6).
+-define(CKR_DEVICE_ERROR, 16#30). % 48
+-define(CKR_SESSION_CLOSED, 16#B0). % 176
+
+%% Argument descriptions. From p11-kit/rpc-message.h p11_rpc_calls[].
+%% * a_ = prefix denotes array of _
+%% * A = CK_ATTRIBUTE
+%% * f_ = prefix denotes buffer for _
+%% * M = CK_MECHANISM
+%% * u = CK_ULONG
+%% * s = space padded string
+%% * v = CK_VERSION
+%% * y = CK_BYTE
+%% * z = null terminated string
+%% Needed for generating our own messages, like ERROR.
+%% They're being sent in the messages, after the request id.
+%% TOOD: Complete argument descrptions, at least for messages
+%% we generate.
+-define(REQIDS,
+ [ % {name, request argdesc, response argdesc}
+ {"ERROR", "", "u"},
+ {"C_Initialize", "ayyay", ""},
+ {"C_Finalize", "", ""},
+ {"C_GetInfo", "", "vsusv"},
+ {"C_GetSlotList", "TODO", "TODO"},
+ {"C_GetSlotInfo", "TODO", "TODO"},
+ {"C_GetTokenInfo", "TODO", "TODO"},
+ {"C_GetMechanismList", "TODO", "TODO"},
+ {"C_GetMechanismInfo", "TODO", "TODO"},
+ {"C_InitToken", "TODO", "TODO"},
+ {"C_OpenSession", "uu", "u"},
+ {"C_CloseSession", "u", ""},
+ {"C_CloseAllSessions", "TODO", "TODO"},
+ {"C_GetSessionInfo", "TODO", "TODO"},
+ {"C_InitPIN", "TODO", "TODO"},
+ {"C_SetPIN", "TODO", "TODO"},
+ {"C_GetOperationState", "TODO", "TODO"},
+ {"C_SetOperationState", "TODO", "TODO"},
+ {"C_Login", "uuay", ""},
+ {"C_Logout", "u", ""},
+ {"C_CreateObject", "TODO", "TODO"},
+ {"C_CopyObject", "TODO", "TODO"},
+ {"C_DestroyObject", "TODO", "TODO"},
+ {"C_GetObjectSize", "TODO", "TODO"},
+ {"C_GetAttributeValue", "TODO", "TODO"},
+ {"C_SetAttributeValue", "TODO", "TODO"},
+ {"C_FindObjectsInit", "TODO", "TODO"},
+ {"C_FindObjects", "TODO", "TODO"},
+ {"C_FindObjectsFinal", "TODO", "TODO"},
+ {"C_EncryptInit", "TODO", "TODO"},
+ {"C_Encrypt", "TODO", "TODO"},
+ {"C_EncryptUpdate", "TODO", "TODO"},
+ {"C_EncryptFinal", "TODO", "TODO"},
+ {"C_DecryptInit", "TODO", "TODO"},
+ {"C_Decrypt", "TODO", "TODO"},
+ {"C_DecryptUpdate", "TODO", "TODO"},
+ {"C_DecryptFinal", "TODO", "TODO"},
+ {"C_DigestInit", "TODO", "TODO"},
+ {"C_Digest", "TODO", "TODO"},
+ {"C_DigestUpdate", "TODO", "TODO"},
+ {"C_DigestKey", "TODO", "TODO"},
+ {"C_DigestFinal", "TODO", "TODO"},
+ {"C_SignInit", "TODO", "TODO"},
+ {"C_Sign", "TODO", "TODO"},
+ {"C_SignUpdate", "TODO", "TODO"},
+ {"C_SignFinal", "TODO", "TODO"},
+ {"C_SignRecoverInit", "TODO", "TODO"},
+ {"C_SignRecover", "TODO", "TODO"},
+ {"C_VerifyInit", "TODO", "TODO"},
+ {"C_Verify", "TODO", "TODO"},
+ {"C_VerifyUpdate", "TODO", "TODO"},
+ {"C_VerifyFinal", "TODO", "TODO"},
+ {"C_VerifyRecoverInit", "TODO", "TODO"},
+ {"C_VerifyRecover", "TODO", "TODO"},
+ {"C_DigestEncryptUpdate", "TODO", "TODO"},
+ {"C_DecryptDigestUpdate", "TODO", "TODO"},
+ {"C_SignEncryptUpdate", "TODO", "TODO"},
+ {"C_DecryptVerifyUpdate", "TODO", "TODO"},
+ {"C_GenerateKey", "TODO", "TODO"},
+ {"C_GenerateKeyPair", "TODO", "TODO"},
+ {"C_WrapKey", "TODO", "TODO"},
+ {"C_UnwrapKey", "TODO", "TODO"},
+ {"C_DeriveKey", "TODO", "TODO"},
+ {"C_SeedRandom", "TODO", "TODO"},
+ {"C_GenerateRandom", "TODO", "TODO"},
+ {"C_WaitForSlotEvent" "TODO", "TODO"}
+ ]).