import hashlib import asyncio import concurrent.futures from typing import Dict, Any from dffml.df.types import Operation from dffml.df.base import OperationImplementationContext, \ OperationImplementation # pylint: disable=no-name-in-module from .definitions import UnhashedPassword, \ ScryptPassword scrypt = Operation(name='scrypt', inputs={ 'password': UnhashedPassword, }, outputs={'password': ScryptPassword}, conditions=[]) class ScryptContext(OperationImplementationContext): @staticmethod def hash_password(password): # ---- BEGIN Python hashlib docs ---- # The function provides scrypt password-based key derivation function as # defined in RFC 7914. # password and salt must be bytes-like objects. Applications and # libraries should limit password to a sensible length (e.g. 1024). salt # should be about 16 or more bytes from a proper source, e.g.
OperationImplementation, ) from .log import LOGGER # pylint: disable=no-name-in-module from .definitions import ( URL, URLBytes, RPMObject, rpm_filename, binary_is_PIE, ) url_to_urlbytes = Operation( name="url_to_urlbytes", inputs={"URL": URL}, outputs={"download": URLBytes}, conditions=[], ) class URLBytesObject(NamedTuple): URL: str body: bytes def __repr__(self): return "%s(URL=%s, body=%s...)" % ( self.__class__.__qualname__, self.URL, self.body[:10], )
from dffml.df.types import Operation, Definition from dffml.df.base import ( op, OperationImplementationContext, OperationImplementation, ) # Definitions UserInput = Definition(name="UserInput", primitive="str") DataToPrint = Definition(name="DataToPrint", primitive="generic") AcceptUserInput = Operation( name="AcceptUserInput", inputs={}, outputs={"InputData": UserInput}, conditions=[], ) class AcceptUserInputContext(OperationImplementationContext): @staticmethod def receive_input(): print("Enter the value: ", end="") return input() async def run(self, inputs: Dict[str, Any]) -> Dict[str, Any]: user_input = await self.parent.loop.run_in_executor( self.parent.pool, self.receive_input ) return {"InputData": user_input}
import asyncio import concurrent.futures from typing import Dict, Any from dffml.df.types import Operation from dffml.df.base import ( OperationImplementationContext, OperationImplementation, ) # pylint: disable=no-name-in-module from .definitions import UnhashedPassword, ScryptPassword scrypt = Operation( name="scrypt", inputs={"password": UnhashedPassword}, outputs={"password": ScryptPassword}, conditions=[], ) class ScryptContext(OperationImplementationContext): @staticmethod def hash_password(password): # ---- BEGIN Python hashlib docs ---- # The function provides scrypt password-based key derivation function as # defined in RFC 7914. # password and salt must be bytes-like objects. Applications and # libraries should limit password to a sensible length (e.g. 1024). salt # should be about 16 or more bytes from a proper source, e.g.