defaead(impl):fromdrysponge.baseimportDrySpongeimportsysimportbinasciiif(len(sys.argv)>7)|(len(sys.argv)<6):print("ERROR: need at least 5 arguments: operation,key,nonce,message,associatedData,[staticData],[verbosity]")exit()op=sys.argv[1]key=binascii.unhexlify(sys.argv[2])nonce=binascii.unhexlify(sys.argv[3])message=binascii.unhexlify(sys.argv[4])associatedData=binascii.unhexlify(sys.argv[5])staticData=NoneverbosityIdx=Noneiflen(sys.argv)>=7:iflen(sys.argv[6])>1:staticData=binascii.unhexlify(sys.argv[6])else:verbosityIdx=6iflen(sys.argv)==8:assert(verbosityIdxisNone)verbosityIdx=7ifverbosityIdxisnotNone:impl.Verbose(int(verbosityIdx))ifopin['e','enc','encrypt']:out=impl.encrypt(key,nonce,message,associatedData,staticData)elifopin['d','dec','decreypt']:out=impl.decrypt(key,nonce,message,associatedData,staticData)else:out=impl.encrypt(key,nonce,message,associatedData,staticData)impl.decrypt(key,nonce,out,associatedData,staticData)DrySponge.print_bytes_as_hex(out)