Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Security / Cryptography / RSAPKCS1SignatureFormatter.cs / 1 / RSAPKCS1SignatureFormatter.cs
// ==++== // // 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"); _rsaKey = (RSA) key; } // // public methods // public override void SetKey(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); _rsaKey = (RSA) key; } public override void SetHashAlgorithm(String strName) { _strOID = CryptoConfig.MapNameToOID(strName); } public override byte[] CreateSignature(byte[] rgbHash) { if (_strOID == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingOID")); if (_rsaKey == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingKey")); if (rgbHash == null) throw new ArgumentNullException("rgbHash"); // 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. // // ==--== // // 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"); _rsaKey = (RSA) key; } // // public methods // public override void SetKey(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); _rsaKey = (RSA) key; } public override void SetHashAlgorithm(String strName) { _strOID = CryptoConfig.MapNameToOID(strName); } public override byte[] CreateSignature(byte[] rgbHash) { if (_strOID == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingOID")); if (_rsaKey == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingKey")); if (rgbHash == null) throw new ArgumentNullException("rgbHash"); // 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ColumnResizeAdorner.cs
- CompatibleComparer.cs
- TabOrder.cs
- TabItemWrapperAutomationPeer.cs
- ExtendedProtectionPolicyTypeConverter.cs
- RuleSetBrowserDialog.cs
- oledbmetadatacolumnnames.cs
- PerformanceCounter.cs
- ReturnEventArgs.cs
- IOThreadScheduler.cs
- PrintDialog.cs
- AutomationPattern.cs
- HealthMonitoringSectionHelper.cs
- RepeaterItemCollection.cs
- OutputCacheModule.cs
- IndexingContentUnit.cs
- SettingsPropertyValue.cs
- XamlBrushSerializer.cs
- HttpWebRequestElement.cs
- Brushes.cs
- XmlTextWriter.cs
- PublisherMembershipCondition.cs
- ExtendedPropertyCollection.cs
- GeneralTransform3DTo2DTo3D.cs
- CalloutQueueItem.cs
- IndentedWriter.cs
- GridItemProviderWrapper.cs
- HtmlTextArea.cs
- SqlRecordBuffer.cs
- COM2ExtendedTypeConverter.cs
- GPRECTF.cs
- OrderedDictionary.cs
- LineSegment.cs
- XmlSchemaObject.cs
- XPathNavigatorKeyComparer.cs
- ProfessionalColorTable.cs
- AttributeCollection.cs
- _BaseOverlappedAsyncResult.cs
- EntityWithKeyStrategy.cs
- StackSpiller.cs
- SearchForVirtualItemEventArgs.cs
- InitializerFacet.cs
- ArrayTypeMismatchException.cs
- ItemPager.cs
- DataGridViewBindingCompleteEventArgs.cs
- ViewStateException.cs
- AnnotationStore.cs
- RadioButtonBaseAdapter.cs
- HiddenFieldPageStatePersister.cs
- XmlConvert.cs
- OleDbDataAdapter.cs
- LocalFileSettingsProvider.cs
- XmlName.cs
- FreezableCollection.cs
- StorageFunctionMapping.cs
- PackageDigitalSignatureManager.cs
- DeclarativeCatalogPart.cs
- Scripts.cs
- HelloOperationAsyncResult.cs
- UnsafeNativeMethods.cs
- CollectionBuilder.cs
- UserControlBuildProvider.cs
- PackageRelationshipSelector.cs
- ConsumerConnectionPointCollection.cs
- TableLayoutPanelCodeDomSerializer.cs
- AudioLevelUpdatedEventArgs.cs
- ProcessingInstructionAction.cs
- Nodes.cs
- CloseCollectionAsyncResult.cs
- WsrmMessageInfo.cs
- TextEditorCopyPaste.cs
- RangeValuePattern.cs
- SortExpressionBuilder.cs
- SqlUtil.cs
- PropertyRef.cs
- AttributeParameterInfo.cs
- MatrixConverter.cs
- MethodAccessException.cs
- UnauthorizedAccessException.cs
- SaveLedgerEntryRequest.cs
- TargetFrameworkAttribute.cs
- ConstraintConverter.cs
- ThousandthOfEmRealDoubles.cs
- CqlGenerator.cs
- MarkupProperty.cs
- MultiView.cs
- BamlTreeMap.cs
- LayoutSettings.cs
- SqlWriter.cs
- DesignerAdRotatorAdapter.cs
- AssemblyUtil.cs
- TypeUnloadedException.cs
- dataobject.cs
- OracleRowUpdatedEventArgs.cs
- DetailsViewPagerRow.cs
- HtmlControl.cs
- HttpRequestCacheValidator.cs
- ZoneIdentityPermission.cs
- SpeechUI.cs
- HostingMessageProperty.cs