纯蟒蛇气氛机制实现

wayround_org_sasl的Python项目详细描述


非常简单的sasl机制实现

在此之前,我已经为python做了两个gsasl绑定:
  • 其中一个是使用cython实现的;
  • 第二个是使用vala实现的。
gsasl的主要问题是它的回调机制是什么
无法传递用户数据,因此尝试 为类似python的oop语言进行绑定。
由于我非常不喜欢非面向对象编程,最后我决定了
至少为普通方法编写非常简单的sasl机制 不再返回GSASL问题。
我在gsasl上写了这个包,所以它有一些
相似之处,但我也试着把它简化为 有可能,因为我在霍里,需要我的新邮件服务器软件 尽快工作。

-

用法

这种sasl机制架构应该很简单

  1. 导入wayround_org.sasl.sasl

  2. 使用init_mech(mech_name,mode,callback=none)函数 创建saslession实例。

    注意:在写入时,仅支持的方法(机制)是

    简单,是“服务器”和“客户端”。

    示例:init_mech('plain','server')

    注意:回调可能仅在客户端模式下才需要,可能用于

    组织对话框。这就像在GSASL中一样。

    如果提供回调,则必须使用一个参数- 服务器希望客户端返回的字段的名称。回报 回调的值将被分配给 客户端的对象“.properties”dict property

  3. 使用saslession实例的step()或step64()方法传递数据 它的工作机制。

    这些方法总是返回两个值:
    1. 代码-表示错误、成功或要求更多数据;

      At time of this writting, valid values considered to be: ‘ok’, ‘error’, ‘need_more’.

      gsasl supports more error codes indicating various

      errors, depending on mechanism being used. and this step() methods should also somehow specify errors. possibly, the good way for farther development of this methods (and particularly this package mechanisms) is, in case of errors, return strings starting with ‘error’ text and continuing with ‘_some_spec’ to indicate specific error.

    2. 文本-数据应发送到服务器或客户端 副本。(如果出现错误,通常没有任何数据 应该发送得更远,但请阅读文档 关于使用的机构的细节)

注意:step64()只是一个wrap for step()方法。step64()解码

它的输入,将解码结果传递给step(),之后 对step()结果进行编码并将其返回给调用方。

发展机制

开发新机制-在“mechs”中创建名称为的新文件 目录。编写一些代码:以plain.py为例。

当您的新机制模块完成时,通过以下方式在sasl.py中注册它 在sasl.py top中编辑“机制”dict。

模式类的结构需要具有以下内容:
  1. def初始化(self,callback=none)
  2. 定义步骤(自,数据)
  3. step()方法必须返回2个值: 1:结构 2:字节
  4. “.properties”dict属性

其他的一切都取决于程序员的良心。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX 11可编辑组合框引发IndexOutOfBoundsException   java选择数组中的数组元素   java我从来没有找到创建2D ArrayList的正确方法   java JPA查找orderById的顶部数据,并按字符串过滤Id   使用java在ejabberd中进行xmpp外部身份验证   从ajax调用向java传递点运算符   java如何使用ReadWriteLock   使用Spring控制器和jQueryAjax的java重定向   java使JFrame中的JPanel可滚动   java如何用多个。jar库?   java EditText在RecyclerView中失去了对滚动的关注   java为什么我们必须扩展Servlet或GenericServlet或HttpServlet来创建Servlet应用程序?如果不扩展,我们可以开发Servlet应用程序吗?   使用递归java查找数组中的最大值   具有不同字段数的html表单的java域传输对象   java文本视图扩展;不支持操作异常   java如何使用iText的HTMLWorker类将多语言HTML字符串呈现为PDF