summary refs log tree commit diff
path: root/secrets/keys.nix
blob: f6e3870d9740dcd6ed50b65106b646b28750c0d5 (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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";
    };

    loup = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAcIoMFGmTTo6SQC/3wis0dgn6vUryl6R8ud2mFebaPi";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFXQWM9ogGVtLkN48osot2UPlx4Og7V3B9zFBO/emekh";
    };

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

    taupe = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBv7uF/8uWEMO0RpWnUhhx/wcoEWyIGGOoBxk43vxh2";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJG9kD3fE28ZOc4ISUnfZbSQFOwI1Bg3H2MvrhpPK3YT";
    };

    truite = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOLLEV06Tj36gqxMHrBNK7pb7VuSv4dDdKQH9Gvf4gDt";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBMUaDM6HdFXCSGzOR9KekbyBqog7blRiR6kEsiHJinm";
    };

    taureau = {
      user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAeTfA4Y4l8o7v5SB+QwmsEMFNd9jIFymMtSbVV30iBZ";
      system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL8oHwSbIkL/GWkeLyCPZex5f432dxEy3WHDmjoh0gRl";
    };
  };

  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);
}