/* allocates memory if type != CERT */
static char*
getObjectNick(void *obj, TokenObjectType type)
{
    switch(type) {
      case PRIVKEY:
        /* NOTE: this function allocates memory for the nickname */
        return PK11_GetPrivateKeyNickname((SECKEYPrivateKey*)obj);
      case SYMKEY:
        /* NOTE: this function allocates memory for the nickname */
        return PK11_GetSymKeyNickname((PK11SymKey*)obj);
      case PUBKEY:
        /* NOTE: this function allocates memory for the nickname */
        return PK11_GetPublicKeyNickname((SECKEYPublicKey*)obj);
      case CERT:
        return ((CERTCertificate*)obj)->nickname;
      default:
        PR_ASSERT(PR_FALSE);
        return NULL;
    }
}
コード例 #2
0
void
PrintKey(PK11SymKey *symKey)
{
    char *name = PK11_GetSymKeyNickname(symKey);
    int len = PK11_GetKeyLength(symKey);
    int strength = PK11_GetKeyStrength(symKey, NULL);
    SECItem *value = NULL;
    CK_KEY_TYPE type = PK11_GetSymKeyType(symKey);
    (void) PK11_ExtractKeyValue(symKey);

    value = PK11_GetKeyData(symKey);

    printf("%-20s %3d   %4d   %10s  ", name ? name: " ", len, strength, 
				GetStringFromKeyType(type));
    if (value && value->data) {
	printBuf(value->data, value->len);
    } else {
	printf("<restricted>");
    }
    printf("\n");
}