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
- DBDataPermissionAttribute.cs
- SolidColorBrush.cs
- AdornedElementPlaceholder.cs
- ExtractorMetadata.cs
- ExpandCollapseProviderWrapper.cs
- ConvertTextFrag.cs
- FixedPosition.cs
- UndoUnit.cs
- PresentationTraceSources.cs
- Validator.cs
- SplineQuaternionKeyFrame.cs
- GridViewHeaderRowPresenter.cs
- RedirectionProxy.cs
- TdsParserHelperClasses.cs
- TreeViewImageKeyConverter.cs
- SortableBindingList.cs
- StrongNameUtility.cs
- AttributeCollection.cs
- ItemType.cs
- BinaryHeap.cs
- HandleExceptionArgs.cs
- HtmlHistory.cs
- OutputCacheProfileCollection.cs
- Binding.cs
- ServicePoint.cs
- XmlHierarchyData.cs
- DragCompletedEventArgs.cs
- ProcessThreadDesigner.cs
- CharAnimationBase.cs
- X509Certificate.cs
- XmlEntity.cs
- ClientConfigPaths.cs
- XmlUTF8TextReader.cs
- UrlUtility.cs
- GridItem.cs
- AssociationSetEnd.cs
- StylusEventArgs.cs
- AddInSegmentDirectoryNotFoundException.cs
- FrameSecurityDescriptor.cs
- QilGeneratorEnv.cs
- GroupItem.cs
- SchemaHelper.cs
- AppSettingsExpressionBuilder.cs
- RoleManagerEventArgs.cs
- ParentQuery.cs
- DependencyObjectProvider.cs
- MenuItemStyleCollection.cs
- ProxyGenerator.cs
- MachineKeyConverter.cs
- WorkflowApplicationException.cs
- SoapAttributeAttribute.cs
- ToolStripDropDownDesigner.cs
- UIInitializationException.cs
- WSDualHttpBindingElement.cs
- formatter.cs
- GroupBoxAutomationPeer.cs
- HtmlElementCollection.cs
- GeometryValueSerializer.cs
- ToolStripAdornerWindowService.cs
- VirtualPathUtility.cs
- DynamicFilterExpression.cs
- DBPropSet.cs
- CodeIdentifiers.cs
- SafeEventHandle.cs
- CssTextWriter.cs
- SqlCacheDependencyDatabaseCollection.cs
- Trace.cs
- RowToParametersTransformer.cs
- WmlFormAdapter.cs
- DataGridCaption.cs
- HttpHandlersSection.cs
- SmiEventSink_DeferedProcessing.cs
- EnumConverter.cs
- OperandQuery.cs
- TextControl.cs
- RawStylusInputReport.cs
- EntityParameter.cs
- TreeNodeBinding.cs
- AbstractExpressions.cs
- PointUtil.cs
- ContentElementCollection.cs
- ItemCheckEvent.cs
- ConfigurationPropertyCollection.cs
- DSASignatureDeformatter.cs
- EntityClientCacheKey.cs
- MonikerHelper.cs
- CodeExpressionStatement.cs
- StreamFormatter.cs
- xml.cs
- XmlSchemaType.cs
- MailMessageEventArgs.cs
- Page.cs
- EmptyElement.cs
- XPathMessageContext.cs
- WebPartDescription.cs
- GetWorkflowTree.cs
- TextTabProperties.cs
- GrammarBuilderBase.cs
- TreeView.cs
- DeferredSelectedIndexReference.cs