ECC support for Key Vault SDK#3577
Conversation
|
@msfcolombo, |
|
@msfcolombo |
| /// The cancellation token. | ||
| /// </param> | ||
| public static async Task<KeyBundle> CreateKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, string keyName, string kty, int? keySize = default(int?), IList<string> keyOps = default(IList<string>), KeyAttributes keyAttributes = default(KeyAttributes), IDictionary<string, string> tags = default(IDictionary<string, string>), CancellationToken cancellationToken = default(CancellationToken)) | ||
| public static async Task<KeyBundle> CreateKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, string keyName, string kty, string curve = default(string), int? keySize = default(int?), IList<string> keyOps = default(IList<string>), KeyAttributes keyAttributes = default(KeyAttributes), IDictionary<string, string> tags = default(IDictionary<string, string>), CancellationToken cancellationToken = default(CancellationToken)) |
There was a problem hiding this comment.
This is a breaking API change for both code and existing binaries. Do we need to make a breaking change for this?
There was a problem hiding this comment.
A complete solution for this would be using a structure for key creation parameters. Otherwise every new key feature would cause a breaking change. But in order to avoid breaking this time, we would need Autorest to generate an overload. I will play with Swagger and Autorest to check if I can make it generate method overloads. If I can't find a solution quickly, I will change minor version and we will have to break.
There was a problem hiding this comment.
@JeffSimmer I restored compatibility. Please take a look commit 296dbdb.
There was a problem hiding this comment.
Looks good, I think the NewKeyParameters class is much nicer from a versioning perspective. Thanks!
… versions. -Restored order of create key parameters. -Added a new method for creating keys which takes a structure as parameter and is more future-proof. -Renamed a few fields and types to make more readable and intuitive. -Added create/sign/verify tests cases for ECC keys.
|
@msfcolombo need signoff from your team (Rich or Hervey) |
-JsonWebKey does not automatically validate itself during deserialization; this prevents cryptic or out-of-context error messages. -JsonWebKey is now sealed and stores JSON properties that are not part of schema; this allows the class to support future changes to the protocol. -Verification logic was moved to the new type JsonWebKeyVerifier, which provides rich features such as plugability for new key types. -Fixed letter case on informal texts such as assembly title. -Bumped some versions to reflect changes and compatibility breaks.
|
@msfcolombo this PR will be closed by EOW. You can always reopen again. |
|
Closing for now. Will reopen again after I get internal sign-off. |
Description
P-256,P-384,P-521andSECP256K1.This checklist is used to make sure that common guidelines for a pull request are followed.
General Guidelines
Testing Guidelines
SDK Generation Guidelines
*.csprojandAssemblyInfo.csfiles have been updated with the new version of the SDK.