From 98d0d7a4977dd1bc93b63f077da3aba925f2c29a Mon Sep 17 00:00:00 2001 From: Maarten Billemont Date: Mon, 29 Oct 2018 19:00:07 +0100 Subject: [PATCH] Present site details. --- platform-independent/c/cli/src/mpw-cli.c | 2 +- .../c/core/src/mpw-algorithm.c | 4 +- platform-independent/c/core/src/mpw-marshal.c | 8 +-- platform-independent/c/core/src/mpw-types.c | 56 +++++++++++++++---- platform-independent/c/core/src/mpw-types.h | 8 ++- 5 files changed, 57 insertions(+), 21 deletions(-) diff --git a/platform-independent/c/cli/src/mpw-cli.c b/platform-independent/c/cli/src/mpw-cli.c index 306a81d3..849a84d7 100644 --- a/platform-independent/c/cli/src/mpw-cli.c +++ b/platform-independent/c/cli/src/mpw-cli.c @@ -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 ); diff --git a/platform-independent/c/core/src/mpw-algorithm.c b/platform-independent/c/core/src/mpw-algorithm.c index 6a730142..b6b8ac53 100644 --- a/platform-independent/c/core/src/mpw-algorithm.c +++ b/platform-independent/c/core/src/mpw-algorithm.c @@ -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; diff --git a/platform-independent/c/core/src/mpw-marshal.c b/platform-independent/c/core/src/mpw-marshal.c index e598779b..e474024b 100644 --- a/platform-independent/c/core/src/mpw-marshal.c +++ b/platform-independent/c/core/src/mpw-marshal.c @@ -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; } diff --git a/platform-independent/c/core/src/mpw-types.c b/platform-independent/c/core/src/mpw-types.c index 5aa1b9c4..feea3798 100644 --- a/platform-independent/c/core/src/mpw-types.c +++ b/platform-independent/c/core/src/mpw-types.c @@ -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)) { diff --git a/platform-independent/c/core/src/mpw-types.h b/platform-independent/c/core/src/mpw-types.h index e34953a1..f8610ae8 100644 --- a/platform-independent/c/core/src/mpw-types.h +++ b/platform-independent/c/core/src/mpw-types.h @@ -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.