diff --git a/src/cryptoki.hxx b/src/cryptoki.hxx index cb96d1d..77838ee 100644 --- a/src/cryptoki.hxx +++ b/src/cryptoki.hxx @@ -572,6 +572,15 @@ namespace cryptoki { CK_FLAGS flags; CK_VERSION hardwareVersion; CK_VERSION firmwareVersion; + + //! Convert C-Structure of Slot Information Into C++ + SlotInfo(const CK_SLOT_INFO& cInfo): + slotDescription(cInfo.slotDescription), + manufacturerID(cInfo.manufacturerID), + flags(cInfo.flags), + hardwareVersion(cInfo.hardwareVersion), + firmwareVersion(cInfo.firmwareVersion) { + } }; struct TokenInfo { @@ -593,6 +602,28 @@ namespace cryptoki { CK_VERSION hardwareVersion; CK_VERSION firmwareVersion; FixString<16> utcTime; + + //! Convert C-Structure of Token Information Into C++ + TokenInfo(const CK_TOKEN_INFO& cInfo): + label(cInfo.label), + manufacturerID(cInfo.manufacturerID), + model(cInfo.model), + serialNumber(cInfo.serialNumber), + flags(cInfo.flags), + maxSessionCount(cInfo.ulMaxSessionCount), + sessionCount(cInfo.ulSessionCount), + maxRwSessionCount(cInfo.ulMaxRwSessionCount), + rwSessionCount(cInfo.ulRwSessionCount), + maxPinLen(cInfo.ulMaxPinLen), + minPinLen(cInfo.ulMinPinLen), + totalPublicMemory(cInfo.ulTotalPublicMemory), + freePublicMemory(cInfo.ulFreePublicMemory), + totalPrivateMemory(cInfo.ulTotalPrivateMemory), + freePrivateMemory(cInfo.ulFreePrivateMemory), + hardwareVersion(cInfo.hardwareVersion), + firmwareVersion(cInfo.firmwareVersion), + utcTime(cInfo.utcTime) { + } }; struct Info { @@ -879,19 +910,7 @@ namespace cryptoki { //! calls @c C_GetSlotInfo if (!check(_library->C_GetSlotInfo(_slot, &cInfo), CRYPTOKI_FN_LOG("C_GetSlotInfo"))) - return slotinfo(cInfo); - } - - //! Convert C-Structure of Slot Information Into C++ - SlotInfo slotinfo(const CK_SLOT_INFO& cInfo) { - CRYPTOLOG("log"); - SlotInfo info; - info.slotDescription = cInfo.slotDescription; - info.manufacturerID = cInfo.manufacturerID; - info.flags = cInfo.flags; - info.hardwareVersion = cInfo.hardwareVersion; - info.firmwareVersion = cInfo.firmwareVersion; - return info; + return SlotInfo(cInfo); } //! Read Token Information @@ -901,31 +920,7 @@ namespace cryptoki { CK_TOKEN_INFO cInfo; if (!check(_library->C_GetTokenInfo(_slot, &cInfo), CRYPTOKI_FN_LOG("C_GetTokenInfo"))) - return tokeninfo(cInfo); - } - - //! Convert C-Structure of Token Information Into C++ - TokenInfo tokeninfo(const CK_TOKEN_INFO cInfo) { - TokenInfo info; - info.label = cInfo.label; - info.manufacturerID = cInfo.manufacturerID; - info.model = cInfo.model; - info.serialNumber = cInfo.serialNumber; - info.flags = cInfo.flags; - info.maxSessionCount = cInfo.ulMaxSessionCount; - info.sessionCount = cInfo.ulSessionCount; - info.maxRwSessionCount = cInfo.ulMaxRwSessionCount; - info.rwSessionCount = cInfo.ulRwSessionCount; - info.maxPinLen = cInfo.ulMaxPinLen; - info.minPinLen = cInfo.ulMinPinLen; - info.totalPublicMemory = cInfo.ulTotalPublicMemory; - info.freePublicMemory = cInfo.ulFreePublicMemory; - info.totalPrivateMemory = cInfo.ulTotalPrivateMemory; - info.freePrivateMemory = cInfo.ulFreePrivateMemory; - info.hardwareVersion = cInfo.hardwareVersion; - info.firmwareVersion = cInfo.firmwareVersion; - info.utcTime = cInfo.utcTime; - return info; + return TokenInfo(cInfo); } /*! @bug does not compile: