return (PK11Attribute *)&pk11_StaticNullAttr;
return (PK11Attribute *)&pk11_StaticOneAttr;
pk11_FindPublicKeyAttribute(PK11TokenObject *object, CK_ATTRIBUTE_TYPE type){    NSSLOWKEYPublicKey *key;    PK11Attribute *att = NULL;    char *label;    switch (type) {    case CKA_PRIVATE:    case CKA_SENSITIVE:    case CKA_ALWAYS_SENSITIVE:    case CKA_NEVER_EXTRACTABLE:	return (PK11Attribute *) &pk11_StaticFalseAttr;    case CKA_MODIFIABLE:    case CKA_EXTRACTABLE:	return (PK11Attribute *) &pk11_StaticTrueAttr;    case CKA_LABEL:        label = nsslowkey_FindKeyNicknameByPublicKey(object->obj.slot->keyDB,				&object->dbKey, object->obj.slot->password);	if (label == NULL) {	   return (PK11Attribute *)&pk11_StaticNullAttr;	}	att = pk11_NewTokenAttribute(type,label,PORT_Strlen(label), PR_TRUE);	PORT_Free(label);	return att;    default:	break;    }    key = pk11_GetPublicKey(object);    if (key == NULL) {	return NULL;    }    switch (key->keyType) {    case NSSLOWKEYRSAKey:	return pk11_FindRSAPublicKeyAttribute(key,type);    case NSSLOWKEYDSAKey:	return pk11_FindDSAPublicKeyAttribute(key,type);    case NSSLOWKEYDHKey:	return pk11_FindDHPublicKeyAttribute(key,type);    default:	break;    }    return NULL;}