update renew

This commit is contained in:
2025-03-26 08:05:31 -05:00
parent de1edb946a
commit 10c83ac965
3 changed files with 126 additions and 126 deletions

View File

@@ -7,44 +7,44 @@
- total number of properties: 54 - total number of properties: 54
## Customer Cipher ## Customer Cipher
- property key: [40493 16536 22567 8632 16931 48077 38465 62133 61510 60074 30483 15029 - property key: [12683 37623 46427 24232 53244 25444 34138 18278 52542 17394 45705 57706
32328 35555 12264 4839 56666 52299 23010 54024 11530 38809 33384 9334 22403 60684 20477 13672 47069 29025 8419 8211 36163 21756 45607 31517
53340 25808 36388 7068 48724 2963 19292 41164 31037 24848 7109 29039 44312 19522 17814 41879 18325 2622 43956 30841 59391 52171 51029 44917
26458 18532 7462 19458 51071 45191 60228 22739 41943 36765 29356 35589 28846 25756 24212 4239 11940 31284 58701 7692 31504 25629 20378 35504
3387 28997 31698 23822 30837 4299] 45861 59860 4819 52686 62304 58952]
- position key: [ 8625 16938 65018 7492 24125 667 1225 54737 47670] - position key: [29587 60364 47856 53105 61491 65374 34021 4048 33167]
--- ---
## User Cipher ## User Cipher
- property key: [57486 43228 16207 60359 59029 6255 7588 52492 24710 2551 40990 56898 - property key: [14398 56125 29659 36184 61716 58844 42259 48679 36351 53209 63475 35295
56863 1051 48892 2945 40292 31660 45216 53538 40537 15451 52595 37467 1927 35139 48674 32220 3724 62784 11332 63262 61320 62990 59038 61659
3706 19342 38794 33132 21407 3639 12679 9190 10068 50771 64668 35246 31829 24135 49167 50519 23410 2470 22259 32544 30127 27527 18620 39840
60714 28831 4623 8674 56989 23715 57671 23914 51409 36438 10577 34976 105 31222 38444 37307 58991 39926 16285 42364 843 30922 30467 43324
29440 9581 47915 29410 39979 5656] 13596 3432 28064 33665 35252 8733]
- passcode key: [21257 32848 55275 58059 52662 31196 41361 14925 10153 11854] - passcode key: [43892 51915 3968 29221 4 52573 20838 48052 39138 14671]
- combined position key: [34963 12677 35658 5478 60936 17345 54640 40685 50309] - combined position key: [40967 35807 54041 52517 31281 56961 42242 11385 1018]
- mask key: [23832 11427 59440 48739 10483 30872 4800 48753 55621 53879] - mask key: [57731 56088 1801 26915 40765 22438 9693 31860 17942 7993]
### Combined Postion Key ### Combined Postion Key
```mermaid ```mermaid
block-beta block-beta
columns 2 columns 2
user_pos["user position key:\n[58068 33848 20979 58547 24202 53969 27574 25558 64861]"] user_pos["user position key:\n[24890 2120 45550 47291 61945 28551 49488 49734 20771]"]
customer_pos["customer position key:\n[ 8625 16938 65018 7492 24125 667 1225 54737 47670]"] customer_pos["customer position key:\n[29587 60364 47856 53105 61491 65374 34021 4048 33167]"]
space:2 space:2
xor(("XOR")):2 xor(("XOR")):2
user_pos --> xor user_pos --> xor
customer_pos --> xor customer_pos --> xor
space:2 space:2
comb_pos["combined position key\n[34963 12677 35658 5478 60936 17345 54640 40685 50309]"]:2 comb_pos["combined position key\n[40967 35807 54041 52517 31281 56961 42242 11385 1018]"]:2
xor --> comb_pos xor --> comb_pos
``` ```
## User Keypad ## User Keypad
- keypad: - keypad:
- user passcode indices: [22, 34, 45, 43] - user passcode indices: [12, 4, 51, 33]
## nKode Cipher ## nKode Cipher
@@ -52,54 +52,54 @@ block-beta
```mermaid ```mermaid
block-beta block-beta
columns 2 columns 2
cprop["customer_property_key\n[40493 16536 22567 8632 16931 48077 38465 62133 61510 60074 30483 15029 cprop["customer_property_key\n[12683 37623 46427 24232 53244 25444 34138 18278 52542 17394 45705 57706
32328 35555 12264 4839 56666 52299 23010 54024 11530 38809 33384 9334 22403 60684 20477 13672 47069 29025 8419 8211 36163 21756 45607 31517
53340 25808 36388 7068 48724 2963 19292 41164 31037 24848 7109 29039 44312 19522 17814 41879 18325 2622 43956 30841 59391 52171 51029 44917
26458 18532 7462 19458 51071 45191 60228 22739 41943 36765 29356 35589 28846 25756 24212 4239 11940 31284 58701 7692 31504 25629 20378 35504
3387 28997 31698 23822 30837 4299]"] 45861 59860 4819 52686 62304 58952]"]
uprop["user_property_key\n[57486 43228 16207 60359 59029 6255 7588 52492 24710 2551 40990 56898 uprop["user_property_key\n[14398 56125 29659 36184 61716 58844 42259 48679 36351 53209 63475 35295
56863 1051 48892 2945 40292 31660 45216 53538 40537 15451 52595 37467 1927 35139 48674 32220 3724 62784 11332 63262 61320 62990 59038 61659
3706 19342 38794 33132 21407 3639 12679 9190 10068 50771 64668 35246 31829 24135 49167 50519 23410 2470 22259 32544 30127 27527 18620 39840
60714 28831 4623 8674 56989 23715 57671 23914 51409 36438 10577 34976 105 31222 38444 37307 58991 39926 16285 42364 843 30922 30467 43324
29440 9581 47915 29410 39979 5656]"] 13596 3432 28064 33665 35252 8733]"]
space:2 space:2
xor1(("XOR")):2 xor1(("XOR")):2
cprop --> xor1 cprop --> xor1
uprop --> xor1 uprop --> xor1
space:2 space:2
prop["combined_property_key\n[62032 50130 36776 54558 8506 61182 6770 6684 21325 58903 51619 53457 prop["combined_property_key\n[32565 54767 5127 26787 61372 9024 10051 31192 36215 25953 63643 7907
24017 10096 25891 36737 43828 60364 23965 63299 43548 43762 63289 61210 34275 49131 65253 35224 52025 49525 36214 22719 57589 6411 46986 50058
16490 21923 14215 6365 4383 48550 62830 53206 5237 2426 49278 33751 38701 701 36150 6894 36770 58151 63226 62425 5898 2177 3529 29703
21542 2104 49342 42984 62776 19754 59167 25211 60 58461 118 9841 30896 41755 9016 47283 14611 18887 54104 55155 32367 2577 31449 39233
52387 3482 40915 54740 30225 8961]"] 18953 7162 61412 6044 61623 4668]"]
xor1 --> prop xor1 --> prop
pass["user_passcode_indices\n[22, 34, 45, 43]"] pass["user_passcode_indices\n[12, 4, 51, 33]"]
space:2 space:2
sel(("select\nproperties")):2 sel(("select\nproperties")):2
pass --> sel pass --> sel
prop --> sel prop --> sel
space:2 space:2
passcode["user passcode properties:\n[63289 49278 58461 25211]"]:2 passcode["user passcode properties:\n[34275 61372 6044 2177]"]:2
sel --> passcode sel --> passcode
space:2 space:2
pad["zero pad to\nmax nkode length: 10"]:2 pad["zero pad to\nmax nkode length: 10"]:2
passcode -->pad passcode -->pad
space:2 space:2
paddedpasscode["padded passcode:\n[63289 49278 58461 25211 0 0 0 0 0 0]"] paddedpasscode["padded passcode:\n[34275 61372 6044 2177 0 0 0 0 0 0]"]
pad --> paddedpasscode pad --> paddedpasscode
passkey["passcode key:\n[21257 32848 55275 58059 52662 31196 41361 14925 10153 11854]"] passkey["passcode key:\n[43892 51915 3968 29221 4 52573 20838 48052 39138 14671]"]
space:2 space:2
xor2(("XOR")):2 xor2(("XOR")):2
passkey --> xor2 passkey --> xor2
paddedpasscode --> xor2 paddedpasscode --> xor2
space:2 space:2
cipheredpass["ciphered passcode:\n[42032 16430 13238 32944 52662 31196 41361 14925 10153 11854]"]:2 cipheredpass["ciphered passcode:\n[11927 9591 6172 31396 4 52573 20838 48052 39138 14671]"]:2
xor2 --> cipheredpass xor2 --> cipheredpass
space:2 space:2
hash(("hash")):2 hash(("hash")):2
cipheredpass --> hash cipheredpass --> hash
space:2 space:2
cipheredhashed["hashed ciphered passcode:\n$2b$12$c62ezzyLW3QzUMjYUPSioexdMtSuJKzSM4KLkdKhWIiuNzcxOfT8m"]:2 cipheredhashed["hashed ciphered passcode:\n$2b$12$Jf48A5rmjkxb0II7CkuD8.Qg3GCuROgbS99pMbthC2gXt9szx9gmm"]:2
hash --> cipheredhashed hash --> cipheredhashed
``` ```
@@ -107,9 +107,9 @@ block-beta
```mermaid ```mermaid
block-beta block-beta
columns 3 columns 3
passcode_idx["passcode indices:\n[22, 34, 45, 43]"] passcode_idx["passcode indices:\n[12, 4, 51, 33]"]
comb_pos["combined position key:\n[34963 12677 35658 5478 60936 17345 54640 40685 50309]"] comb_pos["combined position key:\n[40967 35807 54041 52517 31281 56961 42242 11385 1018]"]
cust_pos["customer position key:\n[ 8625 16938 65018 7492 24125 667 1225 54737 47670]"] cust_pos["customer position key:\n[29587 60364 47856 53105 61491 65374 34021 4048 33167]"]
space:3 space:3
propidx(["Get Position Idx:\nmap each to element mod props_per_key"]) propidx(["Get Position Idx:\nmap each to element mod props_per_key"])
@@ -120,7 +120,7 @@ block-beta
cust_pos --> xor1 cust_pos --> xor1
space:3 space:3
passcode_position_idx["passcode poition indices:\n[4, 7, 0, 7]"] passcode_position_idx["passcode poition indices:\n[3, 4, 6, 6]"]
propidx --> passcode_position_idx propidx --> passcode_position_idx
space:5 space:5
@@ -128,10 +128,10 @@ block-beta
passcode_position_idx --> pad1 passcode_position_idx --> pad1
space:5 space:5
posidx["Padded Passcode Position Indices:\n[4, 7, 0, 7, 2, 2, 0, 3, 7, 8]"] posidx["Padded Passcode Position Indices:\n[3, 4, 6, 6, 3, 3, 7, 5, 0, 8]"]
pad1 --> posidx pad1 --> posidx
space:1 space:1
user_pos["user position key:\n[58068 33848 20979 58547 24202 53969 27574 25558 64861]"] user_pos["user position key:\n[24890 2120 45550 47291 61945 28551 49488 49734 20771]"]
xor1 --> user_pos xor1 --> user_pos
space:4 space:4
@@ -139,15 +139,15 @@ block-beta
user_pos --> sel user_pos --> sel
posidx --> sel posidx --> sel
space:5 space:5
passcode_pos["ordered user passcode positions:\n[24202 25558 58068 25558 20979 20979 58068 58547 25558 64861]"] passcode_pos["ordered user passcode positions:\n[47291 61945 49488 49488 47291 47291 49734 28551 24890 20771]"]
sel --> passcode_pos sel --> passcode_pos
mask_key["mask key\n[23832 11427 59440 48739 10483 30872 4800 48753 55621 53879]"] mask_key["mask key\n[57731 56088 1801 26915 40765 22438 9693 31860 17942 7993]"]
space:4 space:4
xor2(("XOR")) xor2(("XOR"))
mask_key --> xor2 mask_key --> xor2
passcode_pos --> xor2 passcode_pos --> xor2
space:5 space:5
mask["enciphered mask:\n [ 914 20341 2788 56757 30976 10603 61460 23234 47763 12074]"] mask["enciphered mask:\n [22840 10977 50777 43123 10118 61213 59291 5107 10028 19994]"]
xor2 --> mask xor2 --> mask
``` ```
@@ -156,19 +156,19 @@ block-beta
```mermaid ```mermaid
block-beta block-beta
columns 3 columns 3
selected_keys["selected keys:\n[5, 3, 2, 2]"] selected_keys["selected keys:\n[1, 0, 5, 0]"]
login_keypad["login keypad:\nKey 0: [18 19 11 30 40 41 24 52 26] login_keypad["login keypad:\nKey 0: [45 46 29 48 4 50 33 16 17]
Key 1: [36 1 47 12 49 32 42 25 35] Key 1: [18 1 20 12 49 5 15 34 44]
Key 2: [45 46 29 39 13 50 33 43 17] Key 2: [27 10 38 3 31 14 24 7 26]
Key 3: [27 37 2 3 31 5 6 34 8] Key 3: [ 0 37 11 39 22 23 42 52 8]
Key 4: [ 9 10 20 21 4 23 15 7 53] Key 4: [36 19 2 21 40 32 6 25 35]
Key 5: [ 0 28 38 48 22 14 51 16 44] Key 5: [ 9 28 47 30 13 41 51 43 53]
"] "]
space:4 space:4
selectkeys(("select keys")) selectkeys(("select keys"))
mask["enciphered mask:\n [ 914 20341 2788 56757 30976 10603 61460 23234 47763 12074]"] mask["enciphered mask:\n [22840 10977 50777 43123 10118 61213 59291 5107 10028 19994]"]
mask_key["mask key:\n[23832 11427 59440 48739 10483 30872 4800 48753 55621 53879]"] mask_key["mask key:\n[57731 56088 1801 26915 40765 22438 9693 31860 17942 7993]"]
space:2 space:2
xor1(("XOR")) xor1(("XOR"))
@@ -178,12 +178,12 @@ Key 5: [ 0 28 38 48 22 14 51 16 44]
login_keypad --> selectkeys login_keypad --> selectkeys
space:3 space:3
ordered_keys["ordered keys:\n[[ 0 28 38 48 22 14 51 16 44] ordered_keys["ordered keys:\n[[18 1 20 12 49 5 15 34 44]
[27 37 2 3 31 5 6 34 8] [45 46 29 48 4 50 33 16 17]
[45 46 29 39 13 50 33 43 17] [ 9 28 47 30 13 41 51 43 53]
[45 46 29 39 13 50 33 43 17]]"] [45 46 29 48 4 50 33 16 17]]"]
user_position_key["user position key:\n[58068 33848 20979 58547 24202 53969 27574 25558 64861]"] user_position_key["user position key:\n[24890 2120 45550 47291 61945 28551 49488 49734 20771]"]
passcode_pos["ordered user passcode positions:\n[24202 25558 58068 25558 20979 20979 58068 58547 25558 64861]"] passcode_pos["ordered user passcode positions:\n[47291 61945 49488 49488 47291 47291 49734 28551 24890 20771]"]
selectkeys --> ordered_keys selectkeys --> ordered_keys
xor1 --> passcode_pos xor1 --> passcode_pos
space:8 space:8
@@ -193,7 +193,7 @@ Key 5: [ 0 28 38 48 22 14 51 16 44]
passcode_pos --> get_passcode_idxs passcode_pos --> get_passcode_idxs
space:8 space:8
passcode_pos_idxs["padded passcode position indices:\n[4, 7, 0, 7, 2, 2, 0, 3, 7, 8]"] passcode_pos_idxs["padded passcode position indices:\n[3, 4, 6, 6, 3, 3, 7, 5, 0, 8]"]
get_passcode_idxs --> passcode_pos_idxs get_passcode_idxs --> passcode_pos_idxs
space:3 space:3
@@ -202,13 +202,13 @@ Key 5: [ 0 28 38 48 22 14 51 16 44]
passcode_pos_idxs --> get_presumed_idxs passcode_pos_idxs --> get_presumed_idxs
space:5 space:5
passcode_prop_idxs["presumed passcode property indices:\n[22, 34, 45, 43]"] passcode_prop_idxs["presumed passcode property indices:\n[12, 4, 51, 33]"]
prop["combined_property_key\n[62032 50130 36776 54558 8506 61182 6770 6684 21325 58903 51619 53457 prop["combined_property_key\n[32565 54767 5127 26787 61372 9024 10051 31192 36215 25953 63643 7907
24017 10096 25891 36737 43828 60364 23965 63299 43548 43762 63289 61210 34275 49131 65253 35224 52025 49525 36214 22719 57589 6411 46986 50058
16490 21923 14215 6365 4383 48550 62830 53206 5237 2426 49278 33751 38701 701 36150 6894 36770 58151 63226 62425 5898 2177 3529 29703
21542 2104 49342 42984 62776 19754 59167 25211 60 58461 118 9841 30896 41755 9016 47283 14611 18887 54104 55155 32367 2577 31449 39233
52387 3482 40915 54740 30225 8961]"] 18953 7162 61412 6044 61623 4668]"]
cipheredhashed["hashed ciphered passcode:\n$2b$12$c62ezzyLW3QzUMjYUPSioexdMtSuJKzSM4KLkdKhWIiuNzcxOfT8m"] cipheredhashed["hashed ciphered passcode:\n$2b$12$Jf48A5rmjkxb0II7CkuD8.Qg3GCuROgbS99pMbthC2gXt9szx9gmm"]
get_presumed_idxs --> passcode_prop_idxs get_presumed_idxs --> passcode_prop_idxs
space:3 space:3
@@ -217,7 +217,7 @@ Key 5: [ 0 28 38 48 22 14 51 16 44]
prop --> sel prop --> sel
space:5 space:5
passcode_prop["presumed passcode properties:\n[63289 49278 58461 25211]"] passcode_prop["presumed passcode properties:\n[34275 61372 6044 2177]"]
sel --> passcode_prop sel --> passcode_prop
space:5 space:5
@@ -225,7 +225,7 @@ Key 5: [ 0 28 38 48 22 14 51 16 44]
passcode_prop --> cipher passcode_prop --> cipher
space:5 space:5
cipheredpass["ciphered passcode:\n[42032 16430 13238 32944 52662 31196 41361 14925 10153 11854]"] cipheredpass["ciphered passcode:\n[11927 9591 6172 31396 4 52573 20838 48052 39138 14671]"]
cipher --> cipheredpass cipher --> cipheredpass
space:7 space:7
@@ -242,34 +242,34 @@ Key 5: [ 0 28 38 48 22 14 51 16 44]
### Renew nKode ### Renew nKode
nKode renewal is a three step process: nKode renewal is a three step process:
1. Renew Customer Properties 1. Renew Customer Keys
2. Renew User Keys 2. Intermediate User Keys
3. Refresh User on Login 3. Renew User Keys on Login
```mermaid ```mermaid
flowchart flowchart
subgraph Renew Customer Properties subgraph Renew Customer Keys
old_prop["`old customer property key:<br/>[ 4830 27406 45287 16089 51119 63121 2006 55056 13259 61408 27069 3731 old_prop["`old customer property key:<br/>[18187 3794 26588 58875 7848 50844 33360 51199 136 43704 3944 38716
33742 9067 56287 33792 13904 36960 60733 9825 13381 38569 14922 32065 33380 13992 16583 62532 50613 13365 41266 44961 3965 61189 20756 13137
19984 7725 40973 39345 17024 45969 50409 60464 13089 53033 15586 2681 60280 23802 19769 57273 54480 60033 40969 36089 25253 25350 17781 61351
47372 30887 53937 34314 11173 4489 1624 16145 51437 27147 10535 44753 30937 56045 46356 10504 57212 53809 60613 29199 32036 29403 3546 12413
49059 10487 9464 42806 59962 13593]`"] 32533 5778 33348 37917 30979 12321]`"]
new_prop["`new customer property key:<br/>[40493 16536 22567 8632 16931 48077 38465 62133 61510 60074 30483 15029 new_prop["`new customer property key:<br/>[12683 37623 46427 24232 53244 25444 34138 18278 52542 17394 45705 57706
32328 35555 12264 4839 56666 52299 23010 54024 11530 38809 33384 9334 22403 60684 20477 13672 47069 29025 8419 8211 36163 21756 45607 31517
53340 25808 36388 7068 48724 2963 19292 41164 31037 24848 7109 29039 44312 19522 17814 41879 18325 2622 43956 30841 59391 52171 51029 44917
26458 18532 7462 19458 51071 45191 60228 22739 41943 36765 29356 35589 28846 25756 24212 4239 11940 31284 58701 7692 31504 25629 20378 35504
3387 28997 31698 23822 30837 4299]`"] 45861 59860 4819 52686 62304 58952]`"]
old_pos["`old customer position key:<br/>[27207 46525 55993 61909 45186 37136 48838 64827 14808]`"] old_pos["`old customer position key:<br/>[49469 33687 25335 30110 35784 45318 25682 60991 21209]`"]
new_pos["`new customer position key:<br/>[ 8625 16938 65018 7492 24125 667 1225 54737 47670]`"] new_pos["`new customer position key:<br/>[29587 60364 47856 53105 61491 65374 34021 4048 33167]`"]
xor1(("XOR")) xor1(("XOR"))
xor2(("XOR")) xor2(("XOR"))
xor_prop["`xor property key:<br/>[36083 11158 59584 8033 34188 19804 37271 9637 50061 1354 7854 13350 xor_prop["`xor property key:<br/>[30336 39973 53895 47955 53588 42488 1802 32921 52662 59722 48609 30294
64902 43400 62519 38631 60170 23595 46303 62825 6479 304 47138 22839 54759 56228 3898 49452 29288 17748 33233 36786 33342 48121 58163 18508
40524 31485 11817 33325 64724 47106 36789 19708 18972 44601 10023 31510 18016 4280 2223 31790 37701 57535 3005 62592 34138 43213 33312 16594
56918 12483 53143 51720 60634 41230 60700 26562 27450 58774 23435 9684 2167 48753 60288 14727 61912 43013 2440 27651 1588 5830 16960 47821
45720 22962 24362 64056 37455 9682]`"] 52272 65350 37015 22995 35427 54889]`"]
xor_pos["`xor position key:<br/>[19446 63383 10051 60561 61119 37771 47631 10474 33774]`"] xor_pos["`xor position key:<br/>[45742 26715 55303 47855 31739 20056 57527 57839 54102]`"]
old_prop --> xor1 old_prop --> xor1
new_prop --> xor1 new_prop --> xor1
xor1 --> xor_prop xor1 --> xor_prop
@@ -278,17 +278,17 @@ nKode renewal is a three step process:
xor2 --> xor_pos xor2 --> xor_pos
end end
subgraph Renew User Keys subgraph Intermediate User Keys
users@{shape: procs, label: "users"} users@{shape: procs, label: "users"}
users --> eachuser users --> eachuser
subgraph eachuser [for each user] subgraph eachuser [for each user]
subgraph old user keys subgraph old user keys
old_user_pos["`combined position key:<br/>[58068 33848 20979 58547 24202 53969 27574 25558 64861]`"] old_user_pos["`combined position key:<br/>[24890 2120 45550 47291 61945 28551 49488 49734 20771]`"]
old_user_prop["`property key:<br/>[57486 43228 16207 60359 59029 6255 7588 52492 24710 2551 40990 56898 old_user_prop["`property key:<br/>[14398 56125 29659 36184 61716 58844 42259 48679 36351 53209 63475 35295
56863 1051 48892 2945 40292 31660 45216 53538 40537 15451 52595 37467 1927 35139 48674 32220 3724 62784 11332 63262 61320 62990 59038 61659
3706 19342 38794 33132 21407 3639 12679 9190 10068 50771 64668 35246 31829 24135 49167 50519 23410 2470 22259 32544 30127 27527 18620 39840
60714 28831 4623 8674 56989 23715 57671 23914 51409 36438 10577 34976 105 31222 38444 37307 58991 39926 16285 42364 843 30922 30467 43324
29440 9581 47915 29410 39979 5656]`"] 13596 3432 28064 33665 35252 8733]`"]
old_renew["renew: False"] old_renew["renew: False"]
end end
xor3(("XOR")) xor3(("XOR"))
@@ -300,28 +300,28 @@ nKode renewal is a three step process:
xor_prop --> xor4 xor_prop --> xor4
xor4 --> inter_user_prop xor4 --> inter_user_prop
subgraph inter_user[intermediate user keys] subgraph inter_user[intermediate user keys]
inter_user_pos["`combined position key:<br/>[50021 50706 44041 63991 183 53322 28543 46599 18283]`"] inter_user_pos["`combined position key:<br/>[ 4777 58244 2846 30666 458 37081 17845 52630 53420]`"]
inter_user_prop["`property key:<br/>[27773 33610 55183 62630 25369 21811 35891 59561 41739 3261 48816 60004 inter_user_prop["`property key:<br/>[20158 18200 41308 13835 8256 16420 41497 16062 16457 9875 18962 65417
9113 44435 19147 40294 30318 10119 1151 9291 34582 15723 30033 52076 53856 21223 45336 48368 31972 45076 44437 30892 28086 19959 1453 47255
36918 12659 47523 833 44875 46645 48690 28442 27976 26730 56251 62136 14901 20223 51360 47481 51255 59673 23886 35744 61685 49994 51868 56178
13180 16476 56728 60394 12871 64941 3163 15016 41963 27584 29402 44404 2078 51079 32172 43068 6071 13299 13845 51583 1407 28172 13635 5105
49560 31967 58369 35034 3684 13258]`"] 63788 61998 64823 55890 983 62580]`"]
inter_renew["renew: True"] inter_renew["renew: True"]
end end
end end
end end
subgraph Refresh User on Login subgraph Renew User Keys on Login
login["First login post renew"] login["First login post renew"]
inter_user --> login inter_user --> login
subgraph new_user [New User Keys] subgraph new_user [New User Keys]
new_user_pos["`combined position key:<br/>[41920 44706 35397 43292 52009 11204 43818 26002 28955]`"] new_user_pos["`combined position key:<br/>[37567 32382 36425 6535 11819 18071 35301 38878 29144]`"]
new_user_prop["`property key:<br/>[50355 56723 59762 39268 44255 59491 12736 62545 3731 51049 48946 10598 new_user_prop["`property key:<br/>[63204 21530 24393 63295 52024 46102 24361 23381 41968 3713 26133 17989
23999 55461 35771 20498 38352 13185 17075 30409 22199 3533 32360 12423 14193 46059 12280 45683 35436 9340 17577 37219 15797 39388 52148 29719
10680 48407 6174 11559 44174 8103 37520 52514 30628 49367 7063 8839 48300 18038 25938 62757 21612 28454 23892 12945 18057 62761 37107 25062
30149 1724 51332 64105 26257 48370 17405 42481 4953 43432 15038 37511 27001 30212 20943 35287 60202 25046 29690 64376 57055 1554 42998 36674
62432 22826 16312 39525 13907 33285]`"] 45138 58609 25837 59944 8395 52185]`"]
new_renew["renew: False"] new_renew["renew: False"]
end end
login --> new_user login --> new_user

View File

@@ -209,15 +209,15 @@ block-beta
### Renew nKode ### Renew nKode
nKode renewal is a three step process: nKode renewal is a three step process:
1. Renew Customer Properties 1. Renew Customer Keys
2. Renew User Keys 2. Intermediate User Keys
3. Refresh User on Login 3. Renew User Keys on Login
{% set md_tick = '`' %} {% set md_tick = '`' %}
```mermaid ```mermaid
flowchart flowchart
subgraph Renew Customer Properties subgraph Renew Customer Keys
old_prop["`old customer property key:<br/>{{old_props}}`"] old_prop["`old customer property key:<br/>{{old_props}}`"]
new_prop["`new customer property key:<br/>{{new_props}}`"] new_prop["`new customer property key:<br/>{{new_props}}`"]
old_pos["`old customer position key:<br/>{{old_pos}}`"] old_pos["`old customer position key:<br/>{{old_pos}}`"]
@@ -234,7 +234,7 @@ nKode renewal is a three step process:
xor2 --> xor_pos xor2 --> xor_pos
end end
subgraph Renew User Keys subgraph Intermediate User Keys
users@{shape: procs, label: "users"} users@{shape: procs, label: "users"}
users --> eachuser users --> eachuser
subgraph eachuser [for each user] subgraph eachuser [for each user]
@@ -260,7 +260,7 @@ nKode renewal is a three step process:
end end
subgraph Refresh User on Login subgraph Renew User Keys on Login
login["First login post renew"] login["First login post renew"]
inter_user --> login inter_user --> login
subgraph new_user [New User Keys] subgraph new_user [New User Keys]

View File

@@ -762,9 +762,9 @@
"cell_type": "markdown", "cell_type": "markdown",
"source": [ "source": [
"## Renew Properties\n", "## Renew Properties\n",
"1. Renew Customer Properties\n", "1. Renew Customer Keys\n",
"2. Renew User Keys\n", "2. Intermediate User Keys\n",
"3. Refresh User on Login\n", "3. Renew User Keys on Login\n",
"\n" "\n"
] ]
}, },
@@ -839,7 +839,7 @@
"metadata": {}, "metadata": {},
"cell_type": "markdown", "cell_type": "markdown",
"source": [ "source": [
"### Renew User\n", "### Intermediate Renew User\n",
"User property and position keys go through an intermediate phase.\n", "User property and position keys go through an intermediate phase.\n",
"#### user.cipher.combined_position_key\n", "#### user.cipher.combined_position_key\n",
"- user_combined_position_key = user_combined_position_key XOR pos_xor\n", "- user_combined_position_key = user_combined_position_key XOR pos_xor\n",
@@ -873,7 +873,7 @@
"metadata": {}, "metadata": {},
"cell_type": "markdown", "cell_type": "markdown",
"source": [ "source": [
"### Refresh User Keys\n", "### New User Keys\n",
"After a user's first successful login, the renew flag is checked. If it's true, the user's cipher is replaced with a new cipher." "After a user's first successful login, the renew flag is checked. If it's true, the user's cipher is replaced with a new cipher."
] ]
}, },