def __init__(self, workspace, project=None, services=None, functions=None, dst_path=None, generate_pd=True, version="1.0"): # Assign parameters coloredlogs.install(level=workspace.log_level) self._version = version self._package_descriptor = None self._workspace = workspace self._project = project self._services = services self._functions = functions # Create a son-access client self._access = AccessClient(self._workspace, log_level=self._workspace.log_level) # Create a validator self._validator = Validator(workspace=workspace) self._validator.configure(syntax=True, integrity=False, topology=False) # Create a schema validator self._schema_validator = SchemaValidator(workspace) # Keep track of VNF packaging referenced in NS self._ns_vnf_registry = {} # location to write the package self._dst_path = dst_path if dst_path else '.' # temporary working directory self._workdir = '.package-' + str(time.time()) # Specifies THE service template of this package self._entry_service_template = None # Keep a list of repositories and # catalogue servers that this package depend on. # This will be included in the Package Resolver Section self._package_resolvers = [] # Keep a list of external artifact # dependencies that this package depends up on # This will be included in the Artifact Dependencies Section self._artifact_dependencies = [] # States if this package is self-contained, # i.e. if contains all its relevant artifacts self._sealed = True # Clear and create package specific folder if generate_pd: self.init_package_skeleton() self.build_package()
def signature(): from son.access.access import AccessClient from son.workspace.workspace import Workspace from Crypto.PublicKey import RSA from Crypto.Hash import SHA256 ws = Workspace('~/workspace/ws1') ac = AccessClient(ws) key = RSA.generate(2048) # package_path = 'son/access/samples/sonata-demo.son' package_path = '../samples/sonata-demo.son' with open(package_path, 'rb') as fhandle: package_content = fhandle.read() package_hash = SHA256.new(package_content).digest() signature = ac.sign_package(package_path, private_key=key.exportKey().decode('utf-8')) public_key = key.publickey() print(public_key.verify(package_hash, (int(signature), )))
from son.access.access import AccessClient from son.workspace.workspace import Workspace from Crypto.PublicKey import RSA from Crypto.Hash import SHA256 ws = Workspace('~/workspace/ws1') ac = AccessClient(ws) key = RSA.generate(2048) package_path = 'son/access/samples/sonata-demo.son' with open(package_path, 'rb') as fhandle: package_content = fhandle.read() package_hash = SHA256.new(package_content).digest() signature = ac.sign_package(package_path, private_key=key.exportKey().decode('utf-8')) public_key = key.publickey() print(public_key.verify(package_hash, (int(signature), )))