diff options
author | Rob Austein <sra@hactrn.net> | 2007-05-09 17:07:48 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-05-09 17:07:48 +0000 |
commit | 0803de4986e88f2c460b72d88198560f8b9313d0 (patch) | |
tree | a68203886c8830a2b1b1985d07135f44bb7b5da4 /docs/left-right-protocol | |
parent | 2f331ced08d7fd8eb94cb3bba60d1ffd9babfd7f (diff) |
Cleanup
svn path=/docs/left-right-protocol; revision=596
Diffstat (limited to 'docs/left-right-protocol')
-rw-r--r-- | docs/left-right-protocol | 278 |
1 files changed, 0 insertions, 278 deletions
diff --git a/docs/left-right-protocol b/docs/left-right-protocol deleted file mode 100644 index 7a558db7..00000000 --- a/docs/left-right-protocol +++ /dev/null @@ -1,278 +0,0 @@ -;;; -*- Lisp -*- -;;; $URL$ -;;; $Id$ -;;; -;;; NB: This file is obsolete and kept only for reference during -;;; transition. It has been replaced by -;;; http://subvert-rpki.hactrn.net/docs/left-right-protocol-message-passing -;;; and at some point that file will be renamed to overwrite this one. -;;; -;;; Scratch pad for working out API design for RPKI engine. -;;; -;;; This file is psuedocode, I just wanted to take advantage of -;;; emacs's built-in support for languages with reasonable syntax. -;;; -;;; Terminology: -;;; -;;; - IRBE: Internet Registry Back End -;;; -;;; - RE: RPKI Engine - -;;; Current problems: - -;;; Need revoke and rekey operations for RPKI keys. First problem is -;;; how does the IRBE name the key that is to roll if keypairs are -;;; created on the fly? For that matter, how do we specify signature -;;; and hash algorithm, keylength, etc for RPKI keys? Preferences? - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Protocol operations between IRBE and RE. -;;; -;;; This is really two separate protocols over channels that might or -;;; not be the same. Both are client/server protocols, but for some -;;; the RE is the client and for others the IRBE is the client. -;;; -;;; This set of operations are initiated by the IRBE. -;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; "Self" ID context -- one RE instance. In degenerate case there -;; will be only one, but in hosting environments there might be many. - -(create-self-id) -=> (self-id) - -(destroy-self-id :self-id 42) -=> () - -(list-self-ids) -=> (self-id ...) - -;; RobK wonders whether there needs to be an operation that blows away -;; most of the context but preserves things like audit logs. No -;; current consensus on need for this. - -(get-preference :self-id 42 - :preference-name :favorite-color) -=> ("obsidian") - -(set-preference :self-id 42 - :name :favorite-color - :value "obsidian") -=> () - -;; Extensions might also show up as preferences that nobody but this -;; IRBE operator has ever heard of. - -;; Business signing key context -- Bundles all the stuff we need to -;; sign outgoing CMS messages with a business key. -;; -;; At one point creating a business signing context also created the -;; key, but that makes key rollover painful when we have many objects -;; all pointing at the same signing context. Easier just to leave all -;; the object links in place and roll the key explictly. - -(create-biz-signing-context :self-id 42) -=> (biz-signing-context-id) - -(destroy-biz-signing-context :self-id 42 - :biz-signing-context-id biz-context-id) -=> () - -(list-biz-signing-contexts :self-id 42) -=> (biz-signing-context-id ...) - -(generate-biz-signing-keypair :self-id 42 - :biz-signing-context-id foo - &optional - :key-type :rsa - :key-length 2048 - :hash-alg :sha1) -=> (pkcs10-cert-request) - -(get-biz-signing-certs :self-id 42 - :biz-signing-context-id splat) -=> (cert ...) - -(set-biz-signing-certs :self-id 42 - :biz-signing-context-id splat - :certs (cert ...)) -=> () - -;; Parent context -- represents one parent of this RE - -(create-parent-context :self-id 42) -=> (parent) - -(destroy-parent-context :self-id 42 - :parent foo) -=> () - -(list-parents :self-id 42) -=> (parent ...) - -(get-parent-ta :self-id 42 - :parent foo) -=> (ta) - -(set-parent-ta :self-id 42 - :parent foo - :ta ta) -=> () - -(get-parent-uri :self-id 42 - :parent foo) -=> (uri) - -(set-parent-uri :self-id 42 - :parent foo - :uri uri) -=> () - -(get-parent-sia-base :self-id 42 - :parent foo) -=> (sia-base) - -(set-parent-sia-base :self-id 42 - :parent foo - :sia-base bar) -=> () - -(get-parent-biz-signing-context :self-id 42 - :parent foo) -=> (biz-signing-context) - -(set-parent-biz-signing-context :self-id 42 - :parent foo - :biz-signing-context bar) -=> () - -(get-parent-repository :self-id 42 - :parent foo) -=> (repository) - -(set-parent-repository :self-id 42 - :parent foo - :repository bar) -=> () - -;; Child context -- represents one child of this RE - -(create-child :self-id 42) -=> (child) - -(destroy-child :self-id 42 - :child bar) -=> () - -(list-children :self-id id) -=> (child ...) - -(get-child-id :self-id 42 - :child foo) -=> (child-id) - -(set-child-id :self-id 42 - :child foo - :id bar) -=> () - -(get-child-ta :self-id 42 - :child foo) -=> (ta) - -(set-child-ta :self-id 42 - :child foo - :ta bar) -=> () - -(get-child-biz-signing-context :self-id 42 - :child foo) -=> (signing-context) - -(set-child-biz-signing-context :self-id 42 - :child foo - :biz-signing-context bar) -=> () - -;; Repository context -- represents one repository in which this RE -;; publishes objects it signs. - -(create-repository :self-id 42) -=> (repository) - -(destroy-repository :self-id 42 - :repository foo) -=> () - -(list-repositories :self-id 42) -=> (repository ...) - -(get-repository-biz-signing-context :self-id 42 - :repository foo) -=> (signing-context) - -(set-repository-biz-signing-context :self-id 42 - :repository foo - :biz-signing-context bar) -=> () - -(get-repository-uri :self-id 42 - :repository foo) -=> (uri) - -(set-repository-uri :self-id 42 - :repository foo - :uri uri) -=> () - -(get-repository-ta :self-id 42 - :repository foo) -=> (ta) - -(set-repository-ta :self-id 42 - :repository foo - :ta ta) -=> () - -;; Force normal processing for a particular self-id right now. - -(please-run-this-self-id-now :self-id 42) -=> () - -;; Publish everything we've got right now. - -(please-publish-world-right-now :self-id 42) -=> () - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Protocol operations between IRBE and RE. -;;; -;;; This is really two separate protocols over channels that might or -;;; not be the same. Both are client/server protocols, but for some -;;; the rpki engine and for others the irbe is the client. -;;; -;;; This set of operations are initiated by the RE. -;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(list-resources :self-id 42 ; issuer id - &optional ; If left off, we're asking about self rather than child - :child id) ; subject id -=> ((:ipv4-address "10.0.0.44/32" "10.3.0.44/32") - (:ipv6-address "fe80:dead:beef::/24") - (:as-number "666") - (:valid-until "2008-04-01T00:00:00Z") - ...) - -(list-rights-to-route :self-id 42) ; Self -=> ((as-number :ipv4 prefix-or-range :ipv6 prefix-or-range ...) - (as-number "ipv6 prefix-or-range :ipv6 prefix-or-range :ipv4 prefix-or-range ...) - ...) - -(report-error :self-id 42 - :error-token :your-hair-is-on-fire - :bag-of-data whatever) -=> () |