From 1918e5df007ce782ee6e6d6da04756d9aa6c18b5 Mon Sep 17 00:00:00 2001 From: Pavel Odvody Date: Tue, 19 May 2015 16:29:29 +0200 Subject: [PATCH] shared/import-util: Tag renamed to reference Added (sha256) digest validation function --- src/shared/import-util.c | 21 +++++++++++++++++++++ src/shared/import-util.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/shared/import-util.c b/src/shared/import-util.c index 660d92ac5..001a8a37e 100644 --- a/src/shared/import-util.c +++ b/src/shared/import-util.c @@ -150,6 +150,27 @@ int raw_strip_suffixes(const char *p, char **ret) { return 0; } +bool dkr_digest_is_valid(const char *digest) { + /* 7 chars for prefix, 64 chars for the digest itself */ + if (strlen(digest) != 71) + return false; + + return startswith(digest, "sha256:") && in_charset(digest + 7, "0123456789abcdef"); +} + +bool dkr_ref_is_valid(const char *ref) { + const char *colon; + + if (isempty(ref)) + return false; + + colon = strchr(ref, ':'); + if (!colon) + return filename_is_valid(ref); + + return dkr_digest_is_valid(ref); +} + bool dkr_name_is_valid(const char *name) { const char *slash, *p; diff --git a/src/shared/import-util.h b/src/shared/import-util.h index ff155b0ff..7bf7d4ca4 100644 --- a/src/shared/import-util.h +++ b/src/shared/import-util.h @@ -44,4 +44,6 @@ int raw_strip_suffixes(const char *name, char **ret); bool dkr_name_is_valid(const char *name); bool dkr_id_is_valid(const char *id); +bool dkr_ref_is_valid(const char *ref); +bool dkr_digest_is_valid(const char *digest); #define dkr_tag_is_valid(tag) filename_is_valid(tag) -- 2.30.2