Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Prepare change of ihave ids: Need to be signed |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
d25d483cd5978813a6a2c65724b8fa1d |
| User & Date: | bernd 2020-07-22 21:01:34.685 |
Context
|
2020-07-28
| ||
| 21:19 | Install n2o-completion.sh check-in: 21c66096d7 user: bernd tags: trunk | |
|
2020-07-22
| ||
| 21:01 | Prepare change of ihave ids: Need to be signed check-in: d25d483cd5 user: bernd tags: trunk | |
|
2020-07-16
| ||
| 20:48 | Snap connectors check-in: 1874972023 user: bernd tags: trunk | |
Changes
Changes to crypt.fs.
| ︙ | ︙ | |||
641 642 643 644 645 646 647 648 649 650 651 652 653 654 |
2dup c:hash + >r >date r> quick-verify-sig ;
: pk-date? ( addr u -- addr u' flag ) \ check only the date
dup sigpksize# u< IF sig-unsigned EXIT THEN
check-date ;
: pk2-sig? ( addr u -- addr u' flag )
dup sigpk2size# u< IF sig-unsigned EXIT THEN
2dup sigpk2size# - + >r c:0key 2dup sigsize# - c:hash r> date-sig? ;
: sig-params ( -- sksig sk pk )
my-key? ?dup-IF
>o ke-sksig sec@ drop ke-sk sec@ drop ke-pk $@ drop o> EXIT
THEN !!FIXME!! ( old version ) sksig skc pkc ;
: pk@ ( -- pk u )
my-key? .ke-pk $@ ;
: sk@ ( -- sk u )
| > > > | 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 |
2dup c:hash + >r >date r> quick-verify-sig ;
: pk-date? ( addr u -- addr u' flag ) \ check only the date
dup sigpksize# u< IF sig-unsigned EXIT THEN
check-date ;
: pk2-sig? ( addr u -- addr u' flag )
dup sigpk2size# u< IF sig-unsigned EXIT THEN
2dup sigpk2size# - + >r c:0key 2dup sigsize# - c:hash r> date-sig? ;
: pk2-date? ( addr u -- addr u' flag )
dup sigpk2size# u< IF sig-unsigned EXIT THEN
check-date ;
: sig-params ( -- sksig sk pk )
my-key? ?dup-IF
>o ke-sksig sec@ drop ke-sk sec@ drop ke-pk $@ drop o> EXIT
THEN !!FIXME!! ( old version ) sksig skc pkc ;
: pk@ ( -- pk u )
my-key? .ke-pk $@ ;
: sk@ ( -- sk u )
|
| ︙ | ︙ |
Changes to ip.fs.
| ︙ | ︙ | |||
38 39 40 41 42 43 44 45 46 | \ convention: \ '!' is a key revocation, it contains the new key \ Tags are kept sorted, so you'll get revocations first, then net2o and IPv6+4 \ Symbolic name may start with '@'+len followed by the name Variable host$ : get-host$ ( -- ) | > > | | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
\ convention:
\ '!' is a key revocation, it contains the new key
\ Tags are kept sorted, so you'll get revocations first, then net2o and IPv6+4
\ Symbolic name may start with '@'+len followed by the name
Variable host$
$40 Constant max-host# \ maximum allowed size of a hostname is 63 characters
: get-host$ ( -- )
max-host# host$ $!len
host$ $@ gethostname drop host$ $@ drop cstring>sstring host$ $!len drop ;
: skip.site ( -- )
host$ $@ s" .site" string-suffix? IF
host$ dup $@len 5 - 5 $del
THEN ;
: replace-host ( -- )
config:orighost$ $@ host$ $@ str=
config:host$ $@len 0> and IF
|
| ︙ | ︙ |
Changes to keys.fs.
| ︙ | ︙ | |||
734 735 736 737 738 739 740 | }scope key-entry-table $save ' context-table is gen-table : key:nest-sig ( addr u -- addr u' flag ) | | | 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 |
}scope
key-entry-table $save
' context-table is gen-table
: key:nest-sig ( addr u -- addr u' flag )
no-ed-check? IF pk2-date? ELSE pk2-sig? THEN dup ?EXIT drop
2dup addnick-owndht
2dup + sigsize# - sigsize# >$
sigpk2size# - 2dup + keysize2 key?new n:>o $> ke-selfsig $!
sim-nick! off c-state off sig-ok ;
' key:nest-sig key-entry to nest-sig
key-entry-table @ sample-key .token-table !
|
| ︙ | ︙ |
Changes to msg.fs.
| ︙ | ︙ | |||
366 367 368 369 370 371 372 373 374 375 376 377 378 379 |
: .ihaves ( -- )
." ====== hash owend by ======" cr
have# [: dup $@ 85type ." :"
cell+ $@ bounds U+DO
space I $@ .@host.id
cell +LOOP cr ;] #map ;
: msg:ihave ( id u1 hash u2 -- )
fetch( ." ihave:" 2over .@host.id 2dup bounds U+DO
forth:cr I keysize 85type keysize +LOOP forth:cr )
2over 2over >mehave ihave[] $[]+!
bounds U+DO 2dup I keysize have# #!ins[] keysize +LOOP 2drop ;
: >ihave ( hash u -- )
0 .pk.host 2over msg:ihave 2drop ( >send-have ) ;
| > > > > > > | 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 |
: .ihaves ( -- )
." ====== hash owend by ======" cr
have# [: dup $@ 85type ." :"
cell+ $@ bounds U+DO
space I $@ .@host.id
cell +LOOP cr ;] #map ;
: check-ihave ( sig u1 hash u2 -- sig u1 hash u2 )
c:0key 2dup c:hash 2over dup sigpksize# u< IF sig-unsigned !!sig!! THEN
2dup sigpksize# - 2dup c:hash + date-sig? !!sig!! 2drop ;
: gen-ihave ( hash u1 -- sig u2 )
c:0key c:hash host$ $@ 2dup c:hash [: type .pk .sig ;] $tmp ;
: msg:ihave ( id u1 hash u2 -- )
fetch( ." ihave:" 2over .@host.id 2dup bounds U+DO
forth:cr I keysize 85type keysize +LOOP forth:cr )
2over 2over >mehave ihave[] $[]+!
bounds U+DO 2dup I keysize have# #!ins[] keysize +LOOP 2drop ;
: >ihave ( hash u -- )
0 .pk.host 2over msg:ihave 2drop ( >send-have ) ;
|
| ︙ | ︙ | |||
989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 |
parent .wait-task @ ?query-task over select event> ;
+net2o: msg-last? ( start end n -- ) \g query messages time start:end, n subqueries
64>n msg:last? ;
+net2o: msg-last ( $:[tick0,msgs,..tickn] n -- ) \g query result
64>n msg:last ;
+net2o: msg-want ( $:[hash0,...,hashn] -- ) \g request objects
$> msg:want ;
+net2o: msg-ihave ( $:[hash0,...,hashn] $:[id] -- ) \g show what objects you have
$> $> msg:ihave enqueue ;
net2o' nestsig net2o: msg-nestsig ( $:cmd+sig -- ) \g check sig+nest
$> nest-sig ?dup-0=-IF
handle-msg
ELSE replay-mode @ IF drop ELSE !!sig!! THEN
| > | 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 |
parent .wait-task @ ?query-task over select event> ;
+net2o: msg-last? ( start end n -- ) \g query messages time start:end, n subqueries
64>n msg:last? ;
+net2o: msg-last ( $:[tick0,msgs,..tickn] n -- ) \g query result
64>n msg:last ;
+net2o: msg-want ( $:[hash0,...,hashn] -- ) \g request objects
$> msg:want ;
\ ID should be <host><pksig> instead of <pk><host>
+net2o: msg-ihave ( $:[hash0,...,hashn] $:[id] -- ) \g show what objects you have
$> $> msg:ihave enqueue ;
net2o' nestsig net2o: msg-nestsig ( $:cmd+sig -- ) \g check sig+nest
$> nest-sig ?dup-0=-IF
handle-msg
ELSE replay-mode @ IF drop ELSE !!sig!! THEN
|
| ︙ | ︙ |
Changes to wiki/videoconference.md.
| ︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
* Push to talk, hotkeys for everything
* Hotkey for cut mark + keyframe
* Local recording with higher res/audio quality for presenter
* Allow multiple devices (cameras, mics) for one participant (Akira Kurosawa
setup), no own audio in backchannel
- Bonus points if multiple participants in the same room can be identified
(e.g. send a short chirp out, and check for it in other audio streams)
* Templates for nice presentation recording
* Set a logo for the talk
* Have a countdown clock for talk slots
* Share slides directly (slides in Markdown)
* Subtitles as option for slides (possibly multiple languages)
* Translated audio tracks to select from (for bigger conferences)
* Rooms for small-group side conversation
| > > | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
* Push to talk, hotkeys for everything
* Hotkey for cut mark + keyframe
* Local recording with higher res/audio quality for presenter
* Allow multiple devices (cameras, mics) for one participant (Akira Kurosawa
setup), no own audio in backchannel
- Bonus points if multiple participants in the same room can be identified
(e.g. send a short chirp out, and check for it in other audio streams)
- room microphone mode — device does not receive audio or video, and can
send audio only in push-to-talk mode.
* Templates for nice presentation recording
* Set a logo for the talk
* Have a countdown clock for talk slots
* Share slides directly (slides in Markdown)
* Subtitles as option for slides (possibly multiple languages)
* Translated audio tracks to select from (for bigger conferences)
* Rooms for small-group side conversation
|
| ︙ | ︙ |