ndn.app_support.light_versec
package
- ndn.app_support.light_versec.compile_lvs(lvs_text)
Compile a text Light VerSec file into a TLV encodable binary LVS model. The latter one can be used to create validators.
- Parameters
lvs_text (
str
) – Light VerSec text file- Return type
LvsModel
- Returns
LVS model
- Raises
SemanticError – when the given text file has a semantic error
lark.UnexpectedInput – when the given text file has a syntax error
- class ndn.app_support.light_versec.Checker(model, user_fns)
A checker uses a LVS model to match names and checks if a key name is allowed to sign a packet.
- Variables
model – the LVS model used.
user_fns – user functions
- check(pkt_name, key_name)
Check whether a packet can be signed by a specified key.
- Parameters
pkt_name (
NonStrictName
) – packet namekey_name (
NonStrictName
) – key name
- Return type
bool
- Returns
whether the key can sign the packet
- static load(binary_model, user_fns)
Load a Light VerSec model from bytes.
- match(name)
Iterate all matches of a given name.
- Parameters
name (
NonStrictName
) – input NDN name.- Return type
Iterator
[tuple
[list
[str
],dict
[str
,Union
[bytes
,bytearray
,memoryview
]]]]- Returns
iterate a pair
(rule_names, context)
, whererule_names
is a list containing corresponding rule names of current node, andcontext
is a dict containing pattern->value mapping.
- root_of_trust()
Return the root of signing chains
- Return type
set
[str
]- Returns
a set containing rule names for all starting nodes of signing DAG.
- save()
Save the model to bytes. User functions excluded.
- Return type
bytes
- suggest(pkt_name, keychain)
Suggest a key from the keychain that is used to sign the specific data packet.
- Parameters
pkt_name (
NonStrictName
) – packet namekeychain (Keychain) – keychain
- Return type
List
[Union
[bytes
,bytearray
,memoryview
]]- Returns
the first key (in the order of storage) in the keychain that can sign the packet
- validate_user_fns()
Check if all user functions required by the model is defined.
- Return type
bool
- class ndn.app_support.light_versec.SemanticError
Raised when the LVS trust schema to compile has semantic errors.
- class ndn.app_support.light_versec.LvsModelError
Raised when the input LVS model is malformed.
- ndn.app_support.light_versec.checker.UserFn
A UserFn represents a LVS user function. It takes two arguments: the first one is the value of the constrained pattern; the second one is a list consists of all input parameters in the LVS trust schema.
alias of
Callable
[[Union
[bytes
,bytearray
,memoryview
],list
[Union
[bytes
,bytearray
,memoryview
]]],bool
]