34 lines
1000 B
Python
34 lines
1000 B
Python
|
# -*- coding: utf-8 -*-
|
||
|
"""
|
||
|
ldap.extop.passwd - Classes for Password Modify extended operation
|
||
|
(see RFC 3062)
|
||
|
|
||
|
See https://www.python-ldap.org/ for details.
|
||
|
"""
|
||
|
|
||
|
from ldap.extop import ExtendedResponse
|
||
|
|
||
|
# Imports from pyasn1
|
||
|
from pyasn1.type import namedtype, univ, tag
|
||
|
from pyasn1.codec.der import decoder
|
||
|
|
||
|
|
||
|
class PasswordModifyResponse(ExtendedResponse):
|
||
|
responseName = None
|
||
|
|
||
|
class PasswordModifyResponseValue(univ.Sequence):
|
||
|
componentType = namedtype.NamedTypes(
|
||
|
namedtype.OptionalNamedType(
|
||
|
'genPasswd',
|
||
|
univ.OctetString().subtype(
|
||
|
implicitTag=tag.Tag(tag.tagClassContext,
|
||
|
tag.tagFormatSimple, 0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
def decodeResponseValue(self, value):
|
||
|
respValue, _ = decoder.decode(value, asn1Spec=self.PasswordModifyResponseValue())
|
||
|
self.genPasswd = bytes(respValue.getComponentByName('genPasswd'))
|
||
|
return self.genPasswd
|