Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- GroupBox.cs
- SerialPinChanges.cs
- TabControlAutomationPeer.cs
- XmlEncoding.cs
- Monitor.cs
- MappingSource.cs
- HttpContext.cs
- ComponentChangingEvent.cs
- CodeTypeReferenceCollection.cs
- ActiveXSite.cs
- ConfigurationPropertyAttribute.cs
- StateManagedCollection.cs
- StandardCommands.cs
- NamespaceQuery.cs
- IPHostEntry.cs
- TemplateBuilder.cs
- RuntimeResourceSet.cs
- CngProvider.cs
- ClientScriptManagerWrapper.cs
- NativeWindow.cs
- CompatibleComparer.cs
- Menu.cs
- MissingManifestResourceException.cs
- SecurityPermission.cs
- QueryExpression.cs
- TerminatorSinks.cs
- MexHttpBindingElement.cs
- ConnectionsZone.cs
- CngUIPolicy.cs
- TextEditorSelection.cs
- XMLDiffLoader.cs
- ScriptControl.cs
- StatusCommandUI.cs
- Html32TextWriter.cs
- CalendarDay.cs
- HWStack.cs
- CustomCategoryAttribute.cs
- PageThemeBuildProvider.cs
- LocalFileSettingsProvider.cs
- GuidelineSet.cs
- XPathConvert.cs
- Attachment.cs
- NativeMethods.cs
- EntityViewGenerationConstants.cs
- WebRequest.cs
- SystemUdpStatistics.cs
- AmbientValueAttribute.cs
- FolderBrowserDialog.cs
- TrackingStringDictionary.cs
- TypeNameParser.cs
- NumericUpDown.cs
- SqlNotificationEventArgs.cs
- ResXBuildProvider.cs
- CryptoApi.cs
- CatalogPartCollection.cs
- BinaryReader.cs
- Rotation3DAnimation.cs
- EntityDataSourceQueryBuilder.cs
- MasterPageParser.cs
- SafeLibraryHandle.cs
- SiteMapPath.cs
- CodeTypeDeclarationCollection.cs
- XsltOutput.cs
- SecurityValidationBehavior.cs
- SystemDiagnosticsSection.cs
- BuilderElements.cs
- ItemsControlAutomationPeer.cs
- WebControlToolBoxItem.cs
- CapabilitiesSection.cs
- DefaultAssemblyResolver.cs
- Helpers.cs
- Queue.cs
- MessageQueueEnumerator.cs
- XsltSettings.cs
- EntityDesignPluralizationHandler.cs
- SchemaObjectWriter.cs
- MenuItemBinding.cs
- Preprocessor.cs
- Win32.cs
- AxisAngleRotation3D.cs
- DocumentReferenceCollection.cs
- CallbackHandler.cs
- ProviderMetadata.cs
- OuterProxyWrapper.cs
- ProviderUtil.cs
- BoundField.cs
- FilteredReadOnlyMetadataCollection.cs
- Graph.cs
- DataGridPageChangedEventArgs.cs
- Schema.cs
- SafeLibraryHandle.cs
- BufferAllocator.cs
- basecomparevalidator.cs
- SevenBitStream.cs
- ModelUIElement3D.cs
- HtmlInputRadioButton.cs
- filewebresponse.cs
- SafeMarshalContext.cs
- DataGridViewImageColumn.cs
- _ListenerRequestStream.cs