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
- NativeCompoundFileAPIs.cs
- TextSyndicationContent.cs
- ControlSerializer.cs
- ResXResourceWriter.cs
- XmlWrappingReader.cs
- TagPrefixInfo.cs
- ProtocolReflector.cs
- CodeTypeMemberCollection.cs
- XmlHierarchicalEnumerable.cs
- SecurityIdentifierElementCollection.cs
- TextDpi.cs
- ButtonAutomationPeer.cs
- AddValidationError.cs
- BmpBitmapDecoder.cs
- WebPartVerb.cs
- EmptyEnumerable.cs
- BitmapPalettes.cs
- Type.cs
- XhtmlConformanceSection.cs
- ActivityCodeDomSerializer.cs
- AsymmetricKeyExchangeDeformatter.cs
- CustomValidator.cs
- Int16AnimationUsingKeyFrames.cs
- HttpCacheVaryByContentEncodings.cs
- WriteTimeStream.cs
- BatchServiceHost.cs
- CaseInsensitiveHashCodeProvider.cs
- Invariant.cs
- ServiceDescriptionImporter.cs
- GradientBrush.cs
- FloaterBaseParaClient.cs
- AutoResetEvent.cs
- FontFamilyIdentifier.cs
- ValidationHelper.cs
- XPathNodePointer.cs
- WindowsFont.cs
- XmlSchemaObjectTable.cs
- MimeMultiPart.cs
- SolidColorBrush.cs
- MenuEventArgs.cs
- TCPListener.cs
- VirtualPathUtility.cs
- BulletChrome.cs
- Html32TextWriter.cs
- SessionStateSection.cs
- SplineKeyFrames.cs
- ToolboxControl.cs
- HostProtectionException.cs
- CompModHelpers.cs
- ChangeProcessor.cs
- SecUtil.cs
- XmlCharType.cs
- SelectiveScrollingGrid.cs
- tibetanshape.cs
- ProxySimple.cs
- SqlConnectionString.cs
- MarkupObject.cs
- documentation.cs
- WindowsScrollBar.cs
- WebPartZoneCollection.cs
- TdsParserHelperClasses.cs
- TemplateControlParser.cs
- OdbcErrorCollection.cs
- BufferedReadStream.cs
- mongolianshape.cs
- RTLAwareMessageBox.cs
- SortDescriptionCollection.cs
- ObjectStateFormatter.cs
- ResourceWriter.cs
- AdapterUtil.cs
- EntityContainerRelationshipSetEnd.cs
- PaperSize.cs
- TypedTableBase.cs
- IpcManager.cs
- MethodCallConverter.cs
- SqlExpressionNullability.cs
- BooleanToVisibilityConverter.cs
- ExclusiveCanonicalizationTransform.cs
- DbParameterHelper.cs
- uribuilder.cs
- XmlChildNodes.cs
- Calendar.cs
- FormViewModeEventArgs.cs
- PngBitmapEncoder.cs
- AutoGeneratedFieldProperties.cs
- ExpressionBuilder.cs
- Util.cs
- URLString.cs
- EmptyControlCollection.cs
- TextTreeInsertElementUndoUnit.cs
- IBuiltInEvidence.cs
- DrawingServices.cs
- RepeaterItemCollection.cs
- ObjectDataSourceDisposingEventArgs.cs
- AxisAngleRotation3D.cs
- PropertyRef.cs
- SelectionList.cs
- ContextMenuStripGroupCollection.cs
- PassportAuthenticationModule.cs
- DbgCompiler.cs