19 #include <gwenhywfar/debug.h>
20 #include <gwenhywfar/ct.h>
21 #include <gwenhywfar/ctplugin.h>
22 #include <gwenhywfar/text.h>
57 "Specify the crypt token type",
58 "Specify the crypt token type"
68 "Specify the crypt token name",
69 "Specify the crypt token name"
79 "Show this help screen",
80 "Show this help screen"
90 fprintf(stderr,
"ERROR: Could not parse arguments\n");
98 fprintf(stderr,
"ERROR: Could not create help string\n");
139 for (i=0; i<keyCount; i++) {
140 if (keyId==0 || keyId==keyIds[i]) {
147 fprintf(stdout,
"-------------------------------------------------\n");
148 fprintf(stdout,
"Key %08x\n",
153 fprintf(stdout,
"Key Descr : %s\n", s);
155 fprintf(stdout,
"Crypt Algo : %s\n",
159 fprintf(stdout,
"Key Flags :");
162 fprintf(stdout,
" STATUS");
164 fprintf(stdout,
" MODULUS");
166 fprintf(stdout,
" EXPONENT");
168 fprintf(stdout,
" KEYVERSION");
170 fprintf(stdout,
" KEYNUMBER");
172 fprintf(stdout,
" SIGNCOUNTER");
175 fprintf(stdout,
" SIGN");
177 fprintf(stdout,
" VERIFY");
179 fprintf(stdout,
" ENCIPHER");
181 fprintf(stdout,
" DECIPHER");
183 fprintf(stdout,
"\n");
185 if (flags & GWEN_CRYPT_TOKEN_KEYFLAGS_HASKEYNUMBER)
187 if (flags & GWEN_CRYPT_TOKEN_KEYFLAGS_HASKEYVERSION)
189 if (flags & GWEN_CRYPT_TOKEN_KEYFLAGS_HASSIGNCOUNTER)
191 if (flags & GWEN_CRYPT_TOKEN_KEYFLAGS_HASMODULUS) {
202 while(len && *p==0) {
212 for (i=0; i<8; i++) {
220 fprintf(stdout,
"Modulus : (%d bits)\n", nbits);
235 if (flags & GWEN_CRYPT_TOKEN_KEYFLAGS_HASEXPONENT) {
241 fprintf(stdout,
"Exponent : \n");
#define GWEN_CRYPT_TOKEN_MODE_FORCE_PIN_ENTRY
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_DB_NODE GWEN_DB_NODE
const uint8_t * GWEN_Crypt_Token_KeyInfo_GetModulusData(const GWEN_CRYPT_TOKEN_KEYINFO *st)
uint32_t GWEN_Crypt_Token_KeyInfo_GetId(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_HASMODULUS
int GWEN_Crypt_Token_Close(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid)
uint32_t GWEN_Crypt_Token_KeyInfo_GetSignCounter(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_CANSIGN
#define GWEN_ARGS_FLAGS_HELP
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_HASSIGNCOUNTER
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
#define GWEN_ARGS_RESULT_HELP
uint32_t GWEN_Crypt_Token_KeyInfo_GetModulusLen(const GWEN_CRYPT_TOKEN_KEYINFO *st)
int GWEN_Crypt_Token_GetKeyIdList(GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
#define GWEN_ARGS_RESULT_ERROR
int showKey(GWEN_DB_NODE *dbArgs, int argc, char **argv)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_CANDECIPHER
uint32_t GWEN_Crypt_Token_KeyInfo_GetKeyVersion(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
const char * GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a)
int GWEN_Crypt_Token_KeyInfo_GetKeySize(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
const uint8_t * GWEN_Crypt_Token_KeyInfo_GetExponentData(const GWEN_CRYPT_TOKEN_KEYINFO *st)
int GWEN_Args_Usage(const GWEN_ARGS *args, GWEN_BUFFER *ubuf, GWEN_ARGS_OUTTYPE ot)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_CANVERIFY
#define GWEN_ARGS_MODE_ALLOW_FREEPARAM
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
uint32_t GWEN_Crypt_Token_KeyInfo_GetFlags(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
int GWEN_Crypt_Token_KeyInfo_GetCryptAlgoId(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
GWEN_DB_NODE * GWEN_DB_GetGroup(GWEN_DB_NODE *n, uint32_t flags, const char *path)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_HASEXPONENT
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN
#define GWEN_ARGS_FLAGS_LAST
int GWEN_Crypt_Token_Open(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_HASACTIONFLAGS
const char * GWEN_Crypt_Token_KeyInfo_GetKeyDescr(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_HASKEYVERSION
struct GWEN_CRYPT_TOKEN_KEYINFO GWEN_CRYPT_TOKEN_KEYINFO
#define GWEN_CRYPT_TOKEN_KEYFLAGS_CANENCIPHER
#define GWEN_CRYPT_TOKEN_KEYFLAGS_HASKEYNUMBER
#define DBG_ERROR(dbg_logger, format, args...)
int GWEN_Args_Check(int argc, char **argv, int startAt, uint32_t mode, const GWEN_ARGS *args, GWEN_DB_NODE *db)
#define GWEN_CRYPT_TOKEN_KEYFLAGS_HASSTATUS
uint32_t GWEN_Crypt_Token_KeyInfo_GetExponentLen(const GWEN_CRYPT_TOKEN_KEYINFO *st)
int GWEN_DB_GetIntValue(GWEN_DB_NODE *n, const char *path, int idx, int defVal)
#define GWEN_ARGS_FLAGS_HAS_ARGUMENT
int GWEN_Text_ToHexBuffer(const char *src, unsigned l, GWEN_BUFFER *buf, unsigned int groupsize, char delimiter, int skipLeadingZeroes)
uint32_t GWEN_Crypt_Token_KeyInfo_GetKeyNumber(const GWEN_CRYPT_TOKEN_KEYINFO *p_struct)
#define GWEN_DB_FLAGS_DEFAULT
void GWEN_Crypt_Token_AddModes(GWEN_CRYPT_TOKEN *ct, uint32_t f)
const GWEN_CRYPT_TOKEN_KEYINFO * GWEN_Crypt_Token_GetKeyInfo(GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t flags, uint32_t gid)