fault.security

Connect an adapter to the stored security context.

os
import

copy
import

files
import

process
import

lsf
import

factory
import

info
data

info = lsf.types.Information(
	identifier = 'http://fault.io/python/security/kprotocol-',
	name = 'kprotocol-',
	authority = 'fault.io',
	contact = "http://fault.io/critical"
)

requirements
data

requirements = '\n'.join([
	'http://fault.io/python/system/extensions.interfaces',
	'http://fault.io/python/security/implementations',
])

formats
data

formats = {
	'http://if.fault.io/factors/system': [
		('elements', 'c', '2011', 'c'),
		('void', 'h', 'header', 'c'),
		('references', 'sr', 'lines', 'text'),
	],
	'http://if.fault.io/factors/python': [
		('module', 'py', 'psf-v3', 'python'),
		('interface', 'pyi', 'psf-v3', 'python'),
	],
	'http://if.fault.io/factors/meta': [
		('references', 'fr', 'lines', 'text'),
	],
}

pyi
data

pyi = lsf.types.factor@'python.interface'

fr
data

fr = lsf.types.factor@'meta.references'

sr
data

sr = lsf.types.factor@'system.references'

module_template
data

module_template = """
	#define ADAPTER_{upper} 1
	#define ADAPTER_TRANSPORT_NEW transport_new_{lower}
	#define ADAPTER_VERIFY SSL_VERIFY_PEER
	#define CONTEXT_LOCATION "{context}"
	#include <kprotocol-openssl.h>
	#include <fault/python/module.h>

	INIT(module, 0, PyDoc_STR("{lower} kprotocol adapter using OpenSSL."))
	{{
		return(init_implementation_data(module));
	}}
"""

init_product
function

init_product(route, roots)

init_project
function

init_project(product, orientation, interfaces, libraries)

main
function
process.Exit

main(inv)