python gssapi包装器

PyGSSA的Python项目详细描述


已弃用

请改用“gssapi” (在pypi上,或在github上的https://github.com/pythongssapi/python-gssapi)。

Pygssapi

pygssapi为gssapi提供了低级和高级包装。 C库。在关注kerberos机制的同时,还应该 可用于其他不依赖于特定机制的gssapi机制 无法轻松转换为python的c值。

要求

  • gssapi的工作实现(例如来自mit kerberos) 其中包括头文件
  • c编译器(如gcc)
  • flufl.enumpython包
  • 包(用于测试)
  • 应该是包(用于测试)

安装

简单方法

$ pip install pygssapi

来自git回购协议
$ git clone https://github.com/DirectXMan12/python-gssapi.git
$ python setup.py build
$ python setup.py install

测试

我写了一些pygssapi的测试;它们生活在gssapi.tests中。 目录。当前基本的gssapi.base命令和 gssapi.client.basicgsclient已经过测试。跑步前 测试中,有效的“host/[fqdn]”(例如“host/some.domain”)必须是 kinit-ed.如果您运行tox,它将为您执行此操作(您将 可能需要运行toxsudo)。

$ sudo tox

$ sudo kinit host/some.domain -k
$ sudo setup.py nosetests

结构

pygssapi由两部分组成:低级的c风格包装器和 高级的、python风格的包装器(它是底层的包装器 API)。用c编写的模块用'(c)表示,而那些用c编写的模块 在python中表示为'(py)'

低水平API

低级api位于gssapi.base中。其中包含的方法 与原始gssapi c方法紧密匹配。他们 遵循给定格式:

  • 名称是c方法名称的驼峰形式的版本,其中 gssapi前缀已删除
  • 使用c int常量作为枚举的参数具有 定义了flufl.enum.intenum类,因此可以传递 枚举成员或整数
  • 在C API中传递特定常量以表示 应改为传递默认值none
  • 在传递非整数c常量的情况下,flufl.enum.enum 类是为公共值定义的
  • 主要和次要错误代码通过gssapi.base.gsserror返回
  • 所有其他相关的输出值在返回中以元组形式返回 方法的值(在非错误的主要状态代码可能 返回时,将提供元组的另一个成员)
结构
gssapi/
/

自动包含所有子包

impl(c)
核心c-api方法
状态实用程序(c)
处理状态代码的实用程序
类型(py)
枚举和异常类型
示例
import gssapi.base as gb

TOdo(sross):提供更多示例

高级API

高级api直接位于gssapi下。班级 包含在每个文件中的目的是提供一个更为python、面向对象的 GSSAPI视图。目前,它们是为基本的gssapi任务而设计的,但是 将在未来扩展。

结构
gssapi/
客户端(py)

basic客户端

基本客户机
能够执行基本gss协商/加密的客户端
基本客户机
一个帮助类,用于简化使用sasl gssapi的工作
键入包装纸(py)
为一些python胶囊对象提供了有用的包装
示例
import gssapi.client as gss

client = gss.BasicGSSClient('vnc@some.host', security_type='encrypted')

init_token = client.setupBaseSecurityContext()
# send to server, get response back...
next_token = client.updateSecurityContext(server_resp)
# encrypt a message
msg_enc = client.encrypt('WARNING: this is secret')
# send the message, get response back...
msg_unenc = client.decrypt(server_encrypted_message)

# freeing of resources (such as deleting the security context and releasing
# the names) is handled automatically

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

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径