跳转到主要内容

Python GSSAPI包装器

项目描述

已弃用

请使用‘gssapi’代替(在PyPI上或GitHub上https://github.com/pythongssapi/python-gssapi)。

PyGSSAPI

PyGSSAPI提供了围绕GSSAPI C库的低层和高层包装器。虽然它侧重于Kerberos机制,但也应该适用于不依赖于特定于机制的C值且无法轻松转换为Python的其他GSSAPI机制。

需求

  • 一个有效的GSSAPI实现(例如,来自MIT Kerberos),包括头文件

  • C编译器(例如GCC)

  • flufl.enum Python包

  • nose包(用于测试)

  • shouldbe包(用于测试)

安装

简单方法

$ pip install pygssapi

从Git仓库

$ git clone https://github.com/DirectXMan12/python-gssapi.git
$ python setup.py build
$ python setup.py install

测试

我已经编写了一些PyGSSAPI的测试;它们位于目录中。目前已测试了基本的命令和。在运行测试之前,必须已经使用kinit对有效的‘host/[FQDN]’(例如‘host/some.domain’)进行了认证。如果您运行tox,它将为您执行此操作(您可能需要以sudo运行tox)。

$ sudo tox

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

结构

PyGSSAPI由两部分组成:低层的C风格包装器和高层Python风格包装器(它是围绕低层API的包装器)。用‘(C)’表示用C编写的模块,而用‘(Py)’表示用Python编写的模块

低层API

低级API位于 gssapi.base 中。其中包含的方法旨在与原始GSSAPI C方法紧密匹配。它们遵循以下格式

  • 名称是C方法名称的驼峰式版本,去除了 gssapi_ 前缀

  • 使用C int常量作为枚举的参数定义了 flufl.enum.IntEnum 类,因此可以传递枚举成员或整数

  • 在C API中将特定常量传递以表示默认值的情况下,应传递 None

  • 在传递非整数C常量的情况下,为常用值定义了 flufl.enum.Enum

  • 主要和次要错误代码通过 gssapi.base.GSSError 返回

  • 所有其他相关输出值都返回在方法的返回值中的元组(在可能返回非错误主要状态代码的情况下,元组中提供了额外的成员)

结构
gssapi/
base/

自动包含所有子包

impl(C)

核心C-API方法

status_utils(C)

处理状态码的实用工具

types(Py)

枚举和异常类型

示例
import gssapi.base as gb

TODO(sross): 提供更多示例

高级API

高级API直接位于 gssapi 下。每个文件中包含的类旨在提供更Python化、面向对象的GSSAPI视图。目前,它们是为基本GSSAPI任务设计的,但将来将进行扩展。

结构
gssapi/
client(Py)

基本客户端

BasicGSSClient

一个能够执行基本GSS协商/加密的客户端

BasicSASLGSSClient

一个简化SASL GSSAPI工作的辅助类

type_wrappers(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

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

PyGSSAPI-1.0.0.tar.gz (464.3 kB 查看哈希值)

上传时间

由以下机构支持