Present site details.
This commit is contained in:
		@@ -238,7 +238,7 @@ int main(const int argc, char *const argv[]) {
 | 
			
		||||
    if (operation.site) {
 | 
			
		||||
        dbg( "siteName         : %s", operation.site->name );
 | 
			
		||||
        dbg( "siteCounter      : %u", operation.siteCounter );
 | 
			
		||||
        dbg( "resultType       : %s (%u)", mpw_nameForType( operation.resultType ), operation.resultType );
 | 
			
		||||
        dbg( "resultType       : %s (%u)", mpw_shortNameForType( operation.resultType ), operation.resultType );
 | 
			
		||||
        dbg( "resultParam      : %s", operation.resultParam );
 | 
			
		||||
        dbg( "keyPurpose       : %s (%u)", mpw_nameForPurpose( operation.keyPurpose ), operation.keyPurpose );
 | 
			
		||||
        dbg( "keyContext       : %s", operation.keyContext );
 | 
			
		||||
 
 | 
			
		||||
@@ -96,7 +96,7 @@ const char *mpw_siteResult(
 | 
			
		||||
        return NULL;
 | 
			
		||||
 | 
			
		||||
    trc( "-- mpw_siteResult (algorithm: %u)", algorithmVersion );
 | 
			
		||||
    trc( "resultType: %d (%s)", resultType, mpw_nameForType( resultType ) );
 | 
			
		||||
    trc( "resultType: %d (%s)", resultType, mpw_shortNameForType( resultType ) );
 | 
			
		||||
    trc( "resultParam: %s", resultParam );
 | 
			
		||||
 | 
			
		||||
    char *sitePassword = NULL;
 | 
			
		||||
@@ -168,7 +168,7 @@ const char *mpw_siteState(
 | 
			
		||||
        return NULL;
 | 
			
		||||
 | 
			
		||||
    trc( "-- mpw_siteState (algorithm: %u)", algorithmVersion );
 | 
			
		||||
    trc( "resultType: %d (%s)", resultType, mpw_nameForType( resultType ) );
 | 
			
		||||
    trc( "resultType: %d (%s)", resultType, mpw_shortNameForType( resultType ) );
 | 
			
		||||
    trc( "resultParam: %zu bytes = %s", sizeof( resultParam ), resultParam );
 | 
			
		||||
    if (!masterKey || !resultParam)
 | 
			
		||||
        return NULL;
 | 
			
		||||
 
 | 
			
		||||
@@ -482,7 +482,7 @@ static MPMarshalledUser *mpw_marshal_read_flat(
 | 
			
		||||
            }
 | 
			
		||||
            if (strcmp( headerName, "Default Type" ) == 0) {
 | 
			
		||||
                int value = atoi( headerValue );
 | 
			
		||||
                if (!mpw_nameForType( (MPResultType)value )) {
 | 
			
		||||
                if (!mpw_shortNameForType( (MPResultType)value )) {
 | 
			
		||||
                    *error = (MPMarshalError){ MPMarshalErrorIllegal, mpw_str( "Invalid user default type: %s", headerValue ) };
 | 
			
		||||
                    return NULL;
 | 
			
		||||
                }
 | 
			
		||||
@@ -564,7 +564,7 @@ static MPMarshalledUser *mpw_marshal_read_flat(
 | 
			
		||||
 | 
			
		||||
        if (siteName && str_type && str_counter && str_algorithm && str_uses && str_lastUsed) {
 | 
			
		||||
            MPResultType siteType = (MPResultType)atoi( str_type );
 | 
			
		||||
            if (!mpw_nameForType( siteType )) {
 | 
			
		||||
            if (!mpw_shortNameForType( siteType )) {
 | 
			
		||||
                *error = (MPMarshalError){ MPMarshalErrorIllegal, mpw_str( "Invalid site type: %s: %s", siteName, str_type ) };
 | 
			
		||||
                return NULL;
 | 
			
		||||
            }
 | 
			
		||||
@@ -703,7 +703,7 @@ static MPMarshalledUser *mpw_marshal_read_json(
 | 
			
		||||
    }
 | 
			
		||||
    MPAlgorithmVersion algorithm = (MPAlgorithmVersion)value;
 | 
			
		||||
    MPResultType defaultType = (MPResultType)mpw_get_json_int( json_file, "user.default_type", MPResultTypeDefault );
 | 
			
		||||
    if (!mpw_nameForType( defaultType )) {
 | 
			
		||||
    if (!mpw_shortNameForType( defaultType )) {
 | 
			
		||||
        *error = (MPMarshalError){ MPMarshalErrorIllegal, mpw_str( "Invalid user default type: %u", defaultType ) };
 | 
			
		||||
        return NULL;
 | 
			
		||||
    }
 | 
			
		||||
@@ -745,7 +745,7 @@ static MPMarshalledUser *mpw_marshal_read_json(
 | 
			
		||||
        }
 | 
			
		||||
        MPAlgorithmVersion siteAlgorithm = (MPAlgorithmVersion)value;
 | 
			
		||||
        MPResultType siteType = (MPResultType)mpw_get_json_int( json_site.val, "type", (int32_t)user->defaultType );
 | 
			
		||||
        if (!mpw_nameForType( siteType )) {
 | 
			
		||||
        if (!mpw_shortNameForType( siteType )) {
 | 
			
		||||
            *error = (MPMarshalError){ MPMarshalErrorIllegal, mpw_str( "Invalid site type: %s: %u", siteName, siteType ) };
 | 
			
		||||
            return NULL;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -54,34 +54,34 @@ const MPResultType mpw_typeWithName(const char *typeName) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Find what password type is represented by the type name.
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplateMaximum ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplateMaximum ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplateMaximum;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplateLong ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplateLong ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplateLong;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplateMedium ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplateMedium ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplateMedium;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplateBasic ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplateBasic ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplateBasic;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplateShort ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplateShort ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplateShort;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplatePIN ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplatePIN ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplatePIN;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplateName ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplateName ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplateName;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeTemplatePhrase ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeTemplatePhrase ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeTemplatePhrase;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeStatefulPersonal ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeStatefulPersonal ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeStatefulPersonal;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeStatefulDevice ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeStatefulDevice ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeStatefulDevice;
 | 
			
		||||
    if (mpw_strncasecmp( mpw_nameForType( MPResultTypeDeriveKey ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
    if (mpw_strncasecmp( mpw_shortNameForType( MPResultTypeDeriveKey ), typeName, strlen( typeName ) ) == 0)
 | 
			
		||||
        return MPResultTypeDeriveKey;
 | 
			
		||||
 | 
			
		||||
    dbg( "Not a generated type name: %s", typeName );
 | 
			
		||||
    return (MPResultType)ERR;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char *mpw_nameForType(MPResultType resultType) {
 | 
			
		||||
const char *mpw_shortNameForType(MPResultType resultType) {
 | 
			
		||||
 | 
			
		||||
    switch (resultType) {
 | 
			
		||||
        case MPResultTypeTemplateMaximum:
 | 
			
		||||
@@ -113,6 +113,38 @@ const char *mpw_nameForType(MPResultType resultType) {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char *mpw_longNameForType(MPResultType resultType) {
 | 
			
		||||
 | 
			
		||||
    switch (resultType) {
 | 
			
		||||
        case MPResultTypeTemplateMaximum:
 | 
			
		||||
            return "Maximum Security Password";
 | 
			
		||||
        case MPResultTypeTemplateLong:
 | 
			
		||||
            return "Long Password";
 | 
			
		||||
        case MPResultTypeTemplateMedium:
 | 
			
		||||
            return "Medium Password";
 | 
			
		||||
        case MPResultTypeTemplateBasic:
 | 
			
		||||
            return "Basic Password";
 | 
			
		||||
        case MPResultTypeTemplateShort:
 | 
			
		||||
            return "Short Password";
 | 
			
		||||
        case MPResultTypeTemplatePIN:
 | 
			
		||||
            return "PIN";
 | 
			
		||||
        case MPResultTypeTemplateName:
 | 
			
		||||
            return "Name";
 | 
			
		||||
        case MPResultTypeTemplatePhrase:
 | 
			
		||||
            return "Phrase";
 | 
			
		||||
        case MPResultTypeStatefulPersonal:
 | 
			
		||||
            return "Personal Password";
 | 
			
		||||
        case MPResultTypeStatefulDevice:
 | 
			
		||||
            return "Device Private Password";
 | 
			
		||||
        case MPResultTypeDeriveKey:
 | 
			
		||||
            return "Crypto Key";
 | 
			
		||||
        default: {
 | 
			
		||||
            dbg( "Unknown password type: %d", resultType );
 | 
			
		||||
            return NULL;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char **mpw_templatesForType(MPResultType type, size_t *count) {
 | 
			
		||||
 | 
			
		||||
    if (!(type & MPResultTypeClassTemplate)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -147,9 +147,13 @@ const char *mpw_scopeForPurpose(MPKeyPurpose purpose);
 | 
			
		||||
 */
 | 
			
		||||
const MPResultType mpw_typeWithName(const char *typeName);
 | 
			
		||||
/**
 | 
			
		||||
 * @return The standard name for the given password type.
 | 
			
		||||
 * @return The standard identifying name for the given password type.
 | 
			
		||||
 */
 | 
			
		||||
const char *mpw_nameForType(MPResultType resultType);
 | 
			
		||||
const char *mpw_shortNameForType(MPResultType resultType);
 | 
			
		||||
/**
 | 
			
		||||
 * @return The descriptive name for the given password type.
 | 
			
		||||
 */
 | 
			
		||||
const char *mpw_longNameForType(MPResultType resultType);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @return A newly allocated array of internal strings that express the templates to use for the given type.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user