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
- XhtmlTextWriter.cs
- WebBrowserPermission.cs
- FacetDescription.cs
- COAUTHINFO.cs
- TranslateTransform3D.cs
- XmlIncludeAttribute.cs
- WinEventWrap.cs
- ResourceDescriptionAttribute.cs
- coordinatorscratchpad.cs
- AggregationMinMaxHelpers.cs
- LinearKeyFrames.cs
- DirectoryRootQuery.cs
- SqlExpressionNullability.cs
- GifBitmapDecoder.cs
- SqlSupersetValidator.cs
- LinkButton.cs
- ContentElement.cs
- ApplicationFileCodeDomTreeGenerator.cs
- VectorCollectionValueSerializer.cs
- SignatureGenerator.cs
- SynchronizedRandom.cs
- SiteOfOriginPart.cs
- CodeBlockBuilder.cs
- Win32Interop.cs
- XmlSchemaAll.cs
- DbCommandTree.cs
- UInt16.cs
- ApplicationTrust.cs
- AssociationType.cs
- MessageQueuePermissionEntryCollection.cs
- DataGridViewRowHeaderCell.cs
- Types.cs
- HtmlAnchor.cs
- CssTextWriter.cs
- PropertyEmitterBase.cs
- SQLDecimal.cs
- ProgressBar.cs
- EntityContainerEntitySet.cs
- SettingsContext.cs
- XmlDigitalSignatureProcessor.cs
- LinearKeyFrames.cs
- XmlImplementation.cs
- BrushMappingModeValidation.cs
- WindowsProgressbar.cs
- SqlNodeTypeOperators.cs
- IteratorFilter.cs
- WebScriptMetadataMessageEncoderFactory.cs
- ForEachDesigner.xaml.cs
- SingleAnimationUsingKeyFrames.cs
- ExportOptions.cs
- LineGeometry.cs
- ContentOperations.cs
- StyleBamlTreeBuilder.cs
- SafeHandles.cs
- SQLBinary.cs
- DataTableReaderListener.cs
- SettingsPropertyValueCollection.cs
- HeaderLabel.cs
- OdbcReferenceCollection.cs
- ContainerUIElement3D.cs
- LineGeometry.cs
- AppDomainUnloadedException.cs
- UnsafeNativeMethods.cs
- CssClassPropertyAttribute.cs
- StringStorage.cs
- CodeMemberProperty.cs
- AnonymousIdentificationSection.cs
- LinkButton.cs
- PerformanceCounterCategory.cs
- HebrewNumber.cs
- DateTimeConverter2.cs
- IPGlobalProperties.cs
- PageRequestManager.cs
- EventHandlersStore.cs
- RsaKeyIdentifierClause.cs
- SQLBinaryStorage.cs
- CopyNodeSetAction.cs
- EpmCustomContentDeSerializer.cs
- ArgumentOutOfRangeException.cs
- SafeCertificateStore.cs
- _IPv6Address.cs
- ClusterRegistryConfigurationProvider.cs
- ControlUtil.cs
- Win32MouseDevice.cs
- RNGCryptoServiceProvider.cs
- DbProviderFactoriesConfigurationHandler.cs
- X509Certificate2.cs
- CompareInfo.cs
- AssemblyBuilderData.cs
- DoubleCollection.cs
- HtmlForm.cs
- ValidatingPropertiesEventArgs.cs
- ViewBase.cs
- BooleanExpr.cs
- WmlLiteralTextAdapter.cs
- FlatButtonAppearance.cs
- HelloMessageCD1.cs
- GlobalAllocSafeHandle.cs
- PropertyMappingExceptionEventArgs.cs
- SqlCommandBuilder.cs