Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / RSAPKCS1SignatureFormatter.cs / 1305376 / RSAPKCS1SignatureFormatter.cs
using System.Diagnostics.Contracts; // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // // // RSAPKCS1SignatureFormatter.cs // namespace System.Security.Cryptography { [System.Runtime.InteropServices.ComVisible(true)] public class RSAPKCS1SignatureFormatter : AsymmetricSignatureFormatter { private RSA _rsaKey; private String _strOID; // // public constructors // public RSAPKCS1SignatureFormatter() {} public RSAPKCS1SignatureFormatter(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } // // public methods // public override void SetKey(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } public override void SetHashAlgorithm(String strName) { _strOID = CryptoConfig.MapNameToOID(strName); } [System.Security.SecuritySafeCritical] // auto-generated public override byte[] CreateSignature(byte[] rgbHash) { if (rgbHash == null) throw new ArgumentNullException("rgbHash"); Contract.EndContractBlock(); if (_strOID == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingOID")); if (_rsaKey == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingKey")); // Two cases here -- if we are talking to the CSP version or if we are talking to some other RSA provider. if (_rsaKey is RSACryptoServiceProvider) { return ((RSACryptoServiceProvider) _rsaKey).SignHash(rgbHash, _strOID); } else { byte[] pad = Utils.RsaPkcs1Padding(_rsaKey, CryptoConfig.EncodeOID(_strOID), rgbHash); // Create the signature by applying the private key to the padded buffer we just created. return _rsaKey.DecryptValue(pad); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System.Diagnostics.Contracts; // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // // // RSAPKCS1SignatureFormatter.cs // namespace System.Security.Cryptography { [System.Runtime.InteropServices.ComVisible(true)] public class RSAPKCS1SignatureFormatter : AsymmetricSignatureFormatter { private RSA _rsaKey; private String _strOID; // // public constructors // public RSAPKCS1SignatureFormatter() {} public RSAPKCS1SignatureFormatter(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } // // public methods // public override void SetKey(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } public override void SetHashAlgorithm(String strName) { _strOID = CryptoConfig.MapNameToOID(strName); } [System.Security.SecuritySafeCritical] // auto-generated public override byte[] CreateSignature(byte[] rgbHash) { if (rgbHash == null) throw new ArgumentNullException("rgbHash"); Contract.EndContractBlock(); if (_strOID == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingOID")); if (_rsaKey == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingKey")); // Two cases here -- if we are talking to the CSP version or if we are talking to some other RSA provider. if (_rsaKey is RSACryptoServiceProvider) { return ((RSACryptoServiceProvider) _rsaKey).SignHash(rgbHash, _strOID); } else { byte[] pad = Utils.RsaPkcs1Padding(_rsaKey, CryptoConfig.EncodeOID(_strOID), rgbHash); // Create the signature by applying the private key to the padded buffer we just created. return _rsaKey.DecryptValue(pad); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FtpCachePolicyElement.cs
- ProfileSettingsCollection.cs
- GcSettings.cs
- LabelExpression.cs
- RuntimeHandles.cs
- AdministrationHelpers.cs
- ConfigurationErrorsException.cs
- ConfigurationElementCollection.cs
- AutomationFocusChangedEventArgs.cs
- TreeViewBindingsEditor.cs
- Point3DAnimation.cs
- MailDefinition.cs
- SafeEventHandle.cs
- NavigationCommands.cs
- Properties.cs
- Clock.cs
- EventQueueState.cs
- MachinePropertyVariants.cs
- DataGridCell.cs
- SqlReferenceCollection.cs
- MultiPageTextView.cs
- CompositionAdorner.cs
- DNS.cs
- SingleAnimationBase.cs
- AsyncInvokeContext.cs
- TraceData.cs
- ControlIdConverter.cs
- GraphicsContext.cs
- ValueSerializerAttribute.cs
- LineUtil.cs
- ZoomPercentageConverter.cs
- GlobalDataBindingHandler.cs
- StatusBarItemAutomationPeer.cs
- ServiceHostFactory.cs
- RelationshipEndMember.cs
- QueuePathEditor.cs
- TraceShell.cs
- DockPattern.cs
- Rights.cs
- HierarchicalDataSourceControl.cs
- ForeignConstraint.cs
- PolicyManager.cs
- WeakEventManager.cs
- StickyNoteHelper.cs
- UserControlBuildProvider.cs
- Touch.cs
- ContractMapping.cs
- TextParentUndoUnit.cs
- PatternMatcher.cs
- FileSecurity.cs
- BamlResourceContent.cs
- DataControlButton.cs
- graph.cs
- DocumentViewerAutomationPeer.cs
- GetWinFXPath.cs
- WebPartRestoreVerb.cs
- DiagnosticEventProvider.cs
- WindowsGraphics2.cs
- ProxyWebPartConnectionCollection.cs
- __ConsoleStream.cs
- FileLoadException.cs
- LedgerEntryCollection.cs
- BindToObject.cs
- Rect.cs
- SqlInternalConnectionTds.cs
- Repeater.cs
- UnsafeNativeMethods.cs
- XmlNodeComparer.cs
- PointCollectionConverter.cs
- SetterBaseCollection.cs
- SqlNode.cs
- ListItem.cs
- IgnoreSection.cs
- RemoveStoryboard.cs
- GroupQuery.cs
- DataGridDesigner.cs
- WebServiceMethodData.cs
- StatusBarDrawItemEvent.cs
- MatrixConverter.cs
- DropAnimation.xaml.cs
- EncryptedPackageFilter.cs
- InstanceCreationEditor.cs
- GenericWebPart.cs
- MemberDescriptor.cs
- ETagAttribute.cs
- QueryCacheKey.cs
- MetadataItemEmitter.cs
- WebHttpSecurityElement.cs
- SurrogateSelector.cs
- FieldDescriptor.cs
- CallInfo.cs
- DesignerDataTable.cs
- WindowsToolbarAsMenu.cs
- MSG.cs
- CheckBoxBaseAdapter.cs
- RowsCopiedEventArgs.cs
- Cell.cs
- CompilerErrorCollection.cs
- BindableAttribute.cs
- LambdaCompiler.ControlFlow.cs