-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for custom cryptography #62
Open
Joannis
wants to merge
29
commits into
apple:main
Choose a base branch
from
Joannis:jo-rsa-private-keys
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 20 commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
620d931
Initial client-side RSA private key support
Joannis cc00081
Implement RSA in a separate module, to be removed before a merge
Joannis 17f5cad
Removed RSA, added a custom key test
Joannis f0e31b2
Merge branch 'main' into jo-rsa-private-keys
Joannis 077e954
Add docs
Joannis fc5f565
Merge branch 'jo-rsa-private-keys' of github.com:joannis/swift-nio-ss…
Joannis 497919b
Merge branch 'main' into jo-rsa-private-keys
Joannis a742b44
Merge branch 'main' into jo-rsa-private-keys
Joannis 4ecf937
Support custom public key types for host keys
Joannis 5852c0c
More transport options
Joannis 569c03e
Implemented passing sequence numbers, and adapter protocols so that o…
Joannis 3837545
Ignore the authentication banner
Joannis 316c8d6
Enable old algorithms
Joannis ee4b862
Merge remote-tracking branch 'apple/main' into jo-rsa-private-keys
Joannis 241b456
Merge remote-tracking branch 'apple/main' into jo-rsa-private-keys
Joannis d8c64fa
Remove conflicts with PR #98
Joannis a50df12
Fixed broken tests after merge. Added tests for all algorithms using …
Joannis 3f42d1f
Merge branch 'apple:main' into jo-rsa-private-keys
gwynne f4efdbc
Define transport protection & key exchange types on the client/server…
Joannis 642d961
Remove whitespace
Joannis c5ccb88
Fix typo
gwynne a4f1a81
Address some of the PR feedback
gwynne c66f0f1
Merge branch 'main' into jo-rsa-private-keys
gwynne df0b47e
Remove defaulted parameters per PR feedback and fix a pile of broken …
gwynne f8b8add
Encapsulate globals in an enum per PR feedback
gwynne b66b64f
Use fine-grained locking per PR feedback
gwynne d1fc273
Address soundness.sh issues with correct version of swiftformat.
gwynne 4b0e7ec
Fix copyright header year
gwynne 86a99b1
Merge branch 'apple:main' into jo-rsa-private-keys
JaapWijnen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -60,12 +60,12 @@ struct SSHConnectionStateMachine { | |
/// The state of this state machine. | ||
private var state: State | ||
|
||
private static let defaultTransportProtectionSchemes: [NIOSSHTransportProtection.Type] = [ | ||
public static let bundledTransportProtectionSchemes: [NIOSSHTransportProtection.Type] = [ | ||
AES256GCMOpenSSHTransportProtection.self, AES128GCMOpenSSHTransportProtection.self, | ||
] | ||
|
||
init(role: SSHConnectionRole, protectionSchemes: [NIOSSHTransportProtection.Type] = Self.defaultTransportProtectionSchemes) { | ||
self.state = .idle(IdleState(role: role, protectionSchemes: protectionSchemes)) | ||
init(role: SSHConnectionRole) { | ||
self.state = .idle(IdleState(role: role)) | ||
} | ||
|
||
func start() -> SSHMultiMessage? { | ||
|
@@ -181,6 +181,7 @@ struct SSHConnectionStateMachine { | |
return .noMessage | ||
case .unimplemented(let unimplemented): | ||
throw NIOSSHError.remotePeerDoesNotSupportMessage(unimplemented) | ||
|
||
default: | ||
// TODO: enforce RFC 4253: | ||
// | ||
|
@@ -305,7 +306,7 @@ struct SSHConnectionStateMachine { | |
let result = try state.receiveUserAuthRequest(message) | ||
self.state = .userAuthentication(state) | ||
return result | ||
|
||
case .userAuthSuccess: | ||
let result = try state.receiveUserAuthSuccess() | ||
// Hey, auth succeeded! | ||
|
@@ -818,7 +819,7 @@ struct SSHConnectionStateMachine { | |
case .userAuthRequest(let message): | ||
try state.writeUserAuthRequest(message, into: &buffer) | ||
self.state = .userAuthentication(state) | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we remove the whitespace changes in this file? |
||
case .userAuthSuccess: | ||
try state.writeUserAuthSuccess(into: &buffer) | ||
// Ok we're good to go! | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be
internal
, as the type is notpublic
.