antiduh
b5b16530cc
Rename Credential.Name to PrincipleName. PrincipleName comes from the security service provider, which may not correspond to the domain user name. For instance, if I'm using kerberos on my domain, my principle may be user@DIVISION.CORP.COM, meanwhile my username might be CORP\user.
2014-07-03 21:02:33 +00:00
antiduh
bfaa49d0a3
Restructured the demo a little bit to exercise the common security packages.
2014-07-03 21:00:19 +00:00
antiduh
a0b1bd8b7e
Fixed ClientContext.Initialize so that it always outputs a token if one was generated, independent of status.
2014-07-03 20:37:32 +00:00
antiduh
cabf7e5249
Use the package properties to know how big to make the token buffers.
2014-07-03 20:16:22 +00:00
antiduh
9636bb44b5
Updated comments.
2014-07-03 03:24:16 +00:00
antiduh
3611034f82
Working on comments.
2014-07-02 21:54:50 +00:00
antiduh
8a353227db
The attribute should not be exposed to the public API, since it shouldn't need to be used by consumers - mark it internal.
2014-07-02 21:54:19 +00:00
antiduh
57c2e8cc52
Add usage of the sequenceNumber and qualityOfProtection parameters, at least at the bottom layer. Upper layers don't right now, but we can change that later.
2014-07-01 21:59:42 +00:00
antiduh
c891b70625
Get rid of the 'status' variable when checking the return code in RevertImpersonate. We don't care what happened, since if it broke, we can't report it (it's in a Dispose path).
2014-07-01 21:22:32 +00:00
antiduh
d63abfb178
Mark the NativeMethods class as static; it's never going to be instantiated.
2014-07-01 21:20:40 +00:00
antiduh
f75b870cca
Make PackageSupport public so consumers can learn about packages.
2014-07-01 21:20:03 +00:00
antiduh
c1a9712bd4
Variable freeStatus is not used.
2014-07-01 21:19:15 +00:00
antiduh
c37e241312
No longer used.
2014-07-01 19:18:03 +00:00
antiduh
7503d37770
Updated comments.
2014-07-01 19:17:56 +00:00
antiduh
ce64bf9d9a
Simplified object lifecycle verification.
2014-07-01 18:40:35 +00:00
antiduh
2e6962bcc0
Removed the finalizer from Credential. The unmanaged resources are captured by other managed objects, who themselves are finalizable objects (usually CriticalFinalizerObject or SafeHandles).
2014-07-01 18:39:16 +00:00
antiduh
b742dbbff4
Simplified lifecycle (initialized, disposed) checks.
2014-07-01 18:36:16 +00:00
antiduh
306fe44cc1
Added more disposed checks.
2014-07-01 18:32:44 +00:00
antiduh
e980e11184
Modified the initialization process a little to better control when a context is marked as initialized.
2014-07-01 18:31:33 +00:00
antiduh
5403321a49
Removed the finalizer from Context. The unmanaged resources are captured by other managed objects, who themselves are finalizable objects (usually CriticalFinalizerObject or SafeHandles).
2014-07-01 18:19:11 +00:00
antiduh
c8ae206306
Removed todo
2014-07-01 18:15:03 +00:00
antiduh
bce9d7b81c
Added license.
2014-07-01 18:10:17 +00:00
antiduh
db4d5f7d03
Added a Readme.
2014-07-01 18:07:47 +00:00
antiduh
894eb60161
Moved the simple demo code to its own project so that the NSspi.csproj project could be a standard dll, and not a referenced exe assembly.
2014-07-01 15:57:58 +00:00
antiduh
b8fd4d9a07
Added a helpful flag to ServerContext to indicate to consumers whether it can support impersonation. Added checks to throw exceptions if impersonation is attempted on a ServerContext that does not support impersonation. Also modified the disposal behavior so that if the ServerContext is disposed while impersonation is occurring, impersonation is explicitly reverted. Consumers wishing to perform long-term impersonation must hold valid references to both the context and impersonation handle.
2014-07-01 15:52:00 +00:00
antiduh
aed206e1be
Working on writing comments and documentation.
2014-07-01 02:10:53 +00:00
antiduh
f65ca7aaaa
Added length validation to the Decrypt and VerifySignature methods.
2014-07-01 01:20:08 +00:00
antiduh
e86fea598d
Refactored the common code in ClientCredential and ServerCredential to a common class, CurrentCredential.
2014-07-01 01:13:33 +00:00
antiduh
fcacd2195b
Implemented a simple impersonation demo.
2014-06-30 20:09:42 +00:00
antiduh
a41e35dc84
CredentialType.cs no longer used.
2014-06-30 20:09:17 +00:00
antiduh
dec1509835
Refactored Credential et al so that the security package is provided by name (string), and not an enum. Security packages are runtime enumerable, and new ones may be created that we don't have any idea of.
2014-06-30 15:36:20 +00:00
antiduh
5da12ad4c4
Split the Credential init code off into each concrete credential.
2014-06-30 15:32:31 +00:00
antiduh
372460a78f
Reworking Credential so that it can be extended by a third party for adapting to other means of acquiring credentials.
2014-06-30 15:23:12 +00:00
antiduh
9d0403ead6
More ReliabilityContracts for finalizer code.
2014-06-30 15:17:51 +00:00
antiduh
798d6be4ad
Added more disposed checks.
2014-06-30 15:05:38 +00:00
antiduh
04df802e54
Add ReliabilityContract for the ReleaseHandle on SafeSspiHandle so that it can fully participate in the implicit CER that is created during finalization.
2014-06-30 15:05:29 +00:00
antiduh
6ed1ab5f76
Added more disposed checks.
2014-06-30 14:49:26 +00:00
antiduh
0070e94aed
Changed the demo's ServerForm to display the client's username when a client connects.
2014-06-30 14:40:39 +00:00
antiduh
cec7b8b88f
Switch the rest of the API to the new TimeStamp structure. Fix the TimeStamp structure to handle dates that are past the upper limit of DateTime.MaxValue.
2014-06-29 16:39:42 +00:00
antiduh
5272979f19
Reworked the Expiry support to expose it in the first place, and to store and present it as a DateTime object.
2014-06-29 14:24:58 +00:00
antiduh
bc97ef64ae
Removed unused test code
2014-06-29 14:21:20 +00:00
antiduh
60ea145e86
Increase the reliability of QueryCredentialsAttribute_Name usage by wrapping a try-finally around the allocation that happens inside the CER.
2014-06-28 16:46:21 +00:00
antiduh
241da896b1
Implemented the ability to query the EnumerateSecurityPackages native API safely.
2014-06-27 22:00:18 +00:00
antiduh
7e5f2a6308
Fixed the demo's CustomServer confusion over Disconnected - it was firing it when a full shutdown occurred, not just when the current client disconnected. Created a second Stopped event to track when the full shutdown actually occurs; still not used by UI.
2014-06-27 21:59:19 +00:00
antiduh
7512b11a66
Implement signed message passing in the UIs.
2014-06-27 18:01:46 +00:00
antiduh
55969a41f5
Comments.
2014-06-27 17:41:28 +00:00
antiduh
cbaf311339
Improve the reliability of the SecureBufferAdapter, so that we can make stronger guarantees that the held GC handles will be released even if the object is leaked.
...
Also, I added guarding in the Dispose(false) method so that we don't accidentally try to release a handle that was never allocated, possibly causing us to throw an exception and fail to release the handles further down the execution.
2014-06-27 17:40:03 +00:00
antiduh
c1b7785440
Reorganized the project to put the library one folder down.
2014-06-27 14:38:28 +00:00
antiduh
ffb7e36edb
Helper methods to safely invoke the VerifySignature and MakeSignature native methods.
2014-06-27 01:52:42 +00:00
antiduh
4224193f6f
CERs around the handle usage in MakeSignature and VerifySignature
2014-06-27 01:47:43 +00:00