aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLianhao Lu <lianhao.lu@intel.com>2019-11-21 12:56:51 +0800
committerLianhao Lu <lianhao.lu@intel.com>2019-11-21 12:58:52 +0800
commit9003bbf2d379d446bf1c08ebd11a4c591be097ed (patch)
treef06264d17de7ee931cf08bb442e26cd207ea7c0a
parent7897b7abd305cf079c6bc973f0fcb804d989a96f (diff)
Correct hash algorithm name in the manifest file
Change-Id: I3817a296ec4480a18ee39f95f283062fa79d0cbf Issue-ID: VNFSDK-518 Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
-rw-r--r--tests/packager/test_csar.py6
-rw-r--r--tests/packager/test_manifest.py10
-rw-r--r--vnfsdk_pkgtools/cli/__main__.py3
-rw-r--r--vnfsdk_pkgtools/packager/manifest.py2
-rw-r--r--vnfsdk_pkgtools/packager/utils.py4
5 files changed, 15 insertions, 10 deletions
diff --git a/tests/packager/test_csar.py b/tests/packager/test_csar.py
index 8217146..10d2a7d 100644
--- a/tests/packager/test_csar.py
+++ b/tests/packager/test_csar.py
@@ -54,7 +54,7 @@ ARGS_MANIFEST_DIGEST = {
'history': 'ChangeLog.txt',
'tests': 'Tests',
'licenses': 'Licenses',
- 'digest': 'sha256',
+ 'digest': 'sha-256',
'certificate': None,
'privkey': None,
}
@@ -66,7 +66,7 @@ ARGS_MANIFEST_DIGEST_CERT = {
'history': 'ChangeLog.txt',
'tests': 'Tests',
'licenses': 'Licenses',
- 'digest': 'sha256',
+ 'digest': 'sha-256',
'certificate': 'test.crt',
'privkey': os.path.join(ROOT_DIR, 'tests', 'resources', 'signature', 'test.key')
}
@@ -90,7 +90,7 @@ INVALID_ARGS_NO_MANIFEST = {
'history': None,
'tests': None,
'licenses': None,
- 'digest': 'sha256',
+ 'digest': 'sha-256',
'certificate': None,
'privkey': None,
}
diff --git a/tests/packager/test_manifest.py b/tests/packager/test_manifest.py
index 003e23e..e8e1e17 100644
--- a/tests/packager/test_manifest.py
+++ b/tests/packager/test_manifest.py
@@ -37,7 +37,7 @@ METADATA_MISSING = "vnf_product_name: test"
FILE_CONTENT = "needToBeHashed"
FILE_DIGEST = '\n'.join(['Source: digest',
- 'Algorithm: SHA256',
+ 'Algorithm: SHA-256',
'Hash: 20a480339aa4371099f9503511dcc5a8051ce3884846678ced5611ec64bbfc9c',
])
@@ -95,7 +95,7 @@ def test_digest(tmpdir):
digest.write(FILE_CONTENT)
m = manifest.Manifest(mf.dirname, 'test.mf')
- assert m.digests['digest'][0] == "SHA256"
+ assert m.digests['digest'][0] == "SHA-256"
assert m.digests['digest'][1] == "20a480339aa4371099f9503511dcc5a8051ce3884846678ced5611ec64bbfc9c"
def test_add_file(tmpdir):
@@ -106,8 +106,8 @@ def test_add_file(tmpdir):
digest.write(FILE_CONTENT)
m = manifest.Manifest(mf.dirname, 'test.mf')
- m.add_file('digest', 'SHA256')
- assert m.digests['digest'][0] == "SHA256"
+ m.add_file('digest', 'SHA-256')
+ assert m.digests['digest'][0] == "SHA-256"
assert m.digests['digest'][1] == "20a480339aa4371099f9503511dcc5a8051ce3884846678ced5611ec64bbfc9c"
def test_update_to_file(tmpdir):
@@ -120,7 +120,7 @@ def test_update_to_file(tmpdir):
digest2.write(FILE_CONTENT)
m1 = manifest.Manifest(mf.dirname, 'test.mf')
- m1.add_file('digest2', 'SHA256')
+ m1.add_file('digest2', 'SHA-256')
m1.signature = CMS
m1.update_to_file()
m2 = manifest.Manifest(mf.dirname, 'test.mf')
diff --git a/vnfsdk_pkgtools/cli/__main__.py b/vnfsdk_pkgtools/cli/__main__.py
index 09896e0..175fcb2 100644
--- a/vnfsdk_pkgtools/cli/__main__.py
+++ b/vnfsdk_pkgtools/cli/__main__.py
@@ -24,6 +24,7 @@ import tempfile
import pkg_resources
from vnfsdk_pkgtools.packager import csar
+from vnfsdk_pkgtools.packager import manifest
from vnfsdk_pkgtools import validator
from vnfsdk_pkgtools import vnfreq
@@ -99,7 +100,7 @@ def parse_args(args_list):
help='Directory containing license information, relative to service template directory')
csar_create.add_argument(
'--digest',
- choices=['SHA256', 'SHA512'],
+ choices=manifest.SUPPORTED_HASH_ALGO,
help='If present, means to check the file deigest in manifest; compute the digest using the specified hash algorithm of all files in the csar package to be put into the manifest file')
csar_create.add_argument(
'--certificate',
diff --git a/vnfsdk_pkgtools/packager/manifest.py b/vnfsdk_pkgtools/packager/manifest.py
index 81ac53c..b2d0804 100644
--- a/vnfsdk_pkgtools/packager/manifest.py
+++ b/vnfsdk_pkgtools/packager/manifest.py
@@ -27,7 +27,7 @@ METADATA_KEYS = [ 'vnf_provider_id',
'vnf_release_data_time',
'vnf_package_version']
DIGEST_KEYS = [ 'Source', 'Algorithm', 'Hash' ]
-SUPPORTED_HASH_ALGO = ['SHA256', 'SHA512']
+SUPPORTED_HASH_ALGO = ['SHA-256', 'SHA-512']
class ManifestException(Exception):
pass
diff --git a/vnfsdk_pkgtools/packager/utils.py b/vnfsdk_pkgtools/packager/utils.py
index 405a65e..06143c6 100644
--- a/vnfsdk_pkgtools/packager/utils.py
+++ b/vnfsdk_pkgtools/packager/utils.py
@@ -40,6 +40,10 @@ def _hash_value_for_file(f, hash_function, block_size=2**20):
def cal_file_hash(root, path, algo):
+ if algo == 'SHA-256':
+ algo = 'SHA256'
+ elif algo == 'SHA-512':
+ algo = 'SHA512'
h = hashlib.new(algo)
if urlparse.urlparse(path).scheme:
r = requests.get(path)