Code
This commit is contained in:
@ -0,0 +1,49 @@
|
||||
#
|
||||
# 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)
|
||||
Reference in New Issue
Block a user