Ticket #198: access_flags.patch
| File access_flags.patch, 2.9 KB (added by martin, 2 years ago) |
|---|
-
src/tools/pkcs15-init.c
1408 1408 1409 1409 if ((r = init_keyargs(&keygen_args.prkey_args)) < 0) 1410 1410 return r; 1411 keygen_args.prkey_args.access_flags |= SC_PKCS15_PRKEY_ACCESS_SENSITIVE|SC_PKCS15_PRKEY_ACCESS_ALWAYSSENSITIVE|SC_PKCS15_PRKEY_ACCESS_NEVEREXTRACTABLE|SC_PKCS15_PRKEY_ACCESS_LOCAL; 1411 1412 1412 1413 /* Parse the key spec given on the command line */ 1413 1414 if (!strncasecmp(spec, "rsa", 3)) { … … 1498 1499 return SC_ERROR_INVALID_ARGUMENTS; 1499 1500 } 1500 1501 if (opt_extractable) { 1501 args-> flags |= SC_PKCS15INIT_EXTRACTABLE;1502 args->access_flags |= SC_PKCS15_PRKEY_ACCESS_EXTRACTABLE; 1502 1503 if (opt_passphrase) { 1503 1504 args->passphrase = opt_passphrase; 1504 1505 } else { -
src/pkcs15init/pkcs15-lib.c
1005 1005 key_info->native = 1; 1006 1006 key_info->key_reference = 0; 1007 1007 key_info->modulus_length = keybits; 1008 key_info->access_flags = DEFAULT_PRKEY_ACCESS_FLAGS;1008 key_info->access_flags = keyargs->access_flags; 1009 1009 /* Path is selected below */ 1010 1010 1011 if (keyargs->flags & SC_PKCS15INIT_EXTRACTABLE) { 1012 key_info->access_flags |= SC_PKCS15_PRKEY_ACCESS_EXTRACTABLE; 1011 if (keyargs->access_flags & SC_PKCS15_PRKEY_ACCESS_EXTRACTABLE) { 1013 1012 key_info->access_flags &= ~SC_PKCS15_PRKEY_ACCESS_NEVEREXTRACTABLE; 1014 1013 key_info->native = 0; 1015 1014 } … … 1188 1187 keyargs->x509_usage, keybits, 0)) { 1189 1188 /* Make sure the caller explicitly tells us to store 1190 1189 * the key non-natively. */ 1191 if (!(keyargs-> flags & SC_PKCS15INIT_EXTRACTABLE))1190 if (!(keyargs->access_flags & SC_PKCS15_PRKEY_ACCESS_EXTRACTABLE)) 1192 1191 SC_TEST_RET(ctx, SC_ERROR_INCOMPATIBLE_KEY, "Card does not support this key."); 1193 1192 1194 1193 if (!keyargs->passphrase … … 1207 1206 1208 1207 /* Get the number of private keys already on this card */ 1209 1208 idx = sc_pkcs15_get_objects(p15card, SC_PKCS15_TYPE_PRKEY, NULL, 0); 1210 if (!(keyargs-> flags & SC_PKCS15INIT_EXTRACTABLE)) {1209 if (!(keyargs->access_flags & SC_PKCS15_PRKEY_ACCESS_EXTRACTABLE)) { 1211 1210 r = profile->ops->create_key(profile, p15card, object); 1212 1211 SC_TEST_RET(ctx, r, "Card specific 'create key' failed"); 1213 1212 -
src/pkcs15init/pkcs15-init.h
191 191 unsigned long usage; 192 192 unsigned long x509_usage; 193 193 unsigned int flags; 194 unsigned int access_flags; 194 195 struct sc_pkcs15init_keyarg_gost_params gost_params; 195 196 196 197 sc_pkcs15_prkey_t key; … … 204 205 const char * pubkey_label; 205 206 }; 206 207 207 #define SC_PKCS15INIT_EXTRACTABLE 0x0001208 208 #define SC_PKCS15INIT_NO_PASSPHRASE 0x0002 209 209 #define SC_PKCS15INIT_SPLIT_KEY 0x0004 210 210
