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
- EdmValidator.cs
- EmbeddedMailObject.cs
- LineSegment.cs
- GPRECT.cs
- SrgsElement.cs
- CodeIdentifier.cs
- XmlEncodedRawTextWriter.cs
- ListViewHitTestInfo.cs
- DataProtection.cs
- CodeExpressionStatement.cs
- CustomLineCap.cs
- ObjectView.cs
- SelectionPatternIdentifiers.cs
- Point4DConverter.cs
- PageWrapper.cs
- ItemsChangedEventArgs.cs
- TemplateEditingService.cs
- ConfigErrorGlyph.cs
- PrintPageEvent.cs
- ExtenderProvidedPropertyAttribute.cs
- WindowsListViewGroup.cs
- CellQuery.cs
- DBCSCodePageEncoding.cs
- ToolBarPanel.cs
- webproxy.cs
- DashStyle.cs
- LineInfo.cs
- DocumentEventArgs.cs
- DrawingGroupDrawingContext.cs
- ObjectStateEntryDbDataRecord.cs
- DynamicValidator.cs
- ParentQuery.cs
- UInt64Converter.cs
- GraphicsState.cs
- StandardToolWindows.cs
- BinarySecretSecurityToken.cs
- IISUnsafeMethods.cs
- WindowsComboBox.cs
- IdlingCommunicationPool.cs
- SyndicationSerializer.cs
- MobileFormsAuthentication.cs
- ListBox.cs
- arabicshape.cs
- Binding.cs
- HttpCachePolicyElement.cs
- ServiceDebugBehavior.cs
- QueueProcessor.cs
- CodeParameterDeclarationExpression.cs
- DelimitedListTraceListener.cs
- KeyPressEvent.cs
- HttpsChannelListener.cs
- ComponentEvent.cs
- ExceptionUtility.cs
- ResourceSet.cs
- WsdlImporterElement.cs
- BindingExpressionUncommonField.cs
- GraphicsPath.cs
- HttpConfigurationSystem.cs
- Duration.cs
- PlaceHolder.cs
- SqlNotificationRequest.cs
- BezierSegment.cs
- AsymmetricSignatureDeformatter.cs
- HttpConfigurationSystem.cs
- WindowsListBox.cs
- TableCellCollection.cs
- HttpApplicationStateBase.cs
- ContainsRowNumberChecker.cs
- _DigestClient.cs
- PathSegmentCollection.cs
- SAPICategories.cs
- securestring.cs
- WorkflowViewManager.cs
- ControlEvent.cs
- BodyGlyph.cs
- ProtocolsConfigurationHandler.cs
- DSASignatureDeformatter.cs
- HashRepartitionStream.cs
- Assembly.cs
- RelationshipEnd.cs
- smtppermission.cs
- ColumnCollectionEditor.cs
- ResourcePart.cs
- Tablet.cs
- TreeNodeStyleCollection.cs
- IpcServerChannel.cs
- ObjectPropertyMapping.cs
- CngAlgorithm.cs
- SetStoryboardSpeedRatio.cs
- RepeatBehavior.cs
- JoinQueryOperator.cs
- RelatedPropertyManager.cs
- objectresult_tresulttype.cs
- WindowsSysHeader.cs
- Stackframe.cs
- GlobalizationSection.cs
- DashStyles.cs
- RootBrowserWindow.cs
- WindowPattern.cs
- EntitySqlQueryCacheKey.cs