summary refs log tree commit diff
path: root/secrets/keys.nix
blob: e1c3c29f30e61f464e42c55f4aa03405e639995a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
let
  machines = {
    renard = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINs2TTjnQvDNr/S3lPLWYOnZi00YIMrRUDH8cpBz1k1m";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ/qDL7+86+0H6NkPs/w4GYiWQwT/4YAx9O2J7sLkKmf";
    };

    lapin = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIzDyaafULcgTuFca51NNgYAzZ28RFDQwVWavRpnY5c+";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGMD/EN9v8YgHOu4YG74Q+xvwjCdxbMIZjnQcUXi0QhZ";
    };

    corsac = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDlqytVSNMFAfbB+rdiNktv3WYViVBMeK7zUO2Pjfii+";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHxghVX0Oq+eHklg/e7s/qhC8CK8PLUgvpLk2G53xEjK";
    };

    fourmi = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOfbbNX3QvNPH5TKQ0nZcBLzFicmzxmfHjPYHsqiJh6s";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIClKCe1ziELUE1N+65xdpctJT1rpn5OgJd0NWNg6bW6J";
    };
  };

  desktops = {
    bismuth = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEK96G1n31aJsZOrux3BKM0ztzi/SFAVHn0MsGkPDdqY";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEP1Q8/07PD5AXghM7cd9Uf54YY8rkuBHfllr1Kzxh10";
    };

    graphite = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEDujTul5wWyGnidLnNuJDRze0Up29l2cDpyKdmvW2Ls";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHd+EvfxJC1rZbeI6hUq5tPpy8b3Xio02orgMBLwPU2l";
    };

    moissanite = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINTG/DHTkuQgwLakSBuXx3XBe+WjUmDlSgLBGzldx/ZD";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPy6IFaPkJMT89s1PZ/ekFGDKF2kvsRuAUB5NTtYQPSL";
    };

    # this one is just a phone :3
    anise = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkdZb6fmfj8fHQUCigTz1x503nRqyokhxYC4RrgA3dZ";
      system = "";
    };
  };

  keysOfType = type: from: with builtins; catAttrs type (attrValues from);

  machinesWithKey = type: from: builtins.mapAttrs (m: k: k.${type}) from;
in
rec {
  inherit machines;

  # keys of admin accounts on network machines
  allAdmins = keysOfType "user" machines;
  # keys of user accounts on desktop machines
  allDesktopUsers = keysOfType "user" desktops;
  # keys of all users, both on desktop and server
  allUsers = allAdmins ++ allDesktopUsers;
  # system host keys of all network machines
  allSystems = keysOfType "system" machines;
  # all keys, whether system or user
  all = allUsers ++ allSystems;

  # user keys per machine
  user = machinesWithKey "user" (machines // desktops);
  # system keys per machine
  system = machinesWithKey "system" (machines // desktops);
}