# # This file is part of pyasn1-modules software. # # Created by Russ Housley with assistance from asn1ate v.0.6.0. # # Copyright (c) 2019, Vigil Security, LLC # License: http://snmplabs.com/pyasn1/license.html # #The scrypt Password-Based Key Derivation Function # # ASN.1 source from: # https://www.rfc-editor.org/rfc/rfc8520.txt # https://www.rfc-editor.org/errata/eid5871 # from pyasn1.type import constraint from pyasn1.type import namedtype from pyasn1.type import univ from pyasn1_modules import rfc5280 MAX = float('inf') id_scrypt = univ.ObjectIdentifier('1.3.6.1.4.1.11591.4.11') class Scrypt_params(univ.Sequence): componentType = namedtype.NamedTypes( namedtype.NamedType('salt', univ.OctetString()), namedtype.NamedType('costParameter', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, MAX))), namedtype.NamedType('blockSize', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, MAX))), namedtype.NamedType('parallelizationParameter', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, MAX))), namedtype.OptionalNamedType('keyLength', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, MAX))) ) # Update the Algorithm Identifier map in rfc5280.py _algorithmIdentifierMapUpdate = { id_scrypt: Scrypt_params(), } rfc5280.algorithmIdentifierMap.update(_algorithmIdentifierMapUpdate)