swift-nio-sshにRSAサポートを追加するためにフォークした話
Adding RSA Support to swift-nio-ssh

swift-nio-sshはed25519などモダンな方式しかサポートせず、RSAは意図的に除外されている。しかしAmazon EC2が配布する古いPKCS#1 RSA鍵を使う必要があり、LogRakerはフォークに踏み切った。難所は、鍵ブロブのタグ「ssh-rsa」と署名アルゴリズム名「rsa-sha2-512」が異なる点で、この名前を2箇所に書く必要があり、食い違うとサーバーには鍵違いとしか見えない。8ファイルの変更をマーカーで管理し、上流の修正を自分で追うコストも正直に語る。
片方は自分が名乗るもの、もう片方は自分が署名するものだ。両者が食い違えば、送るバイトは一つ一つ正しい形式で、鍵も正しく、署名も有効なRSA署名であるにもかかわらず、サーバーはそれを受け付けない。