Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- CheckableControlBaseAdapter.cs
- TreeNodeMouseHoverEvent.cs
- GraphicsContext.cs
- QilTargetType.cs
- FixedSOMTableRow.cs
- LayoutUtils.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- PublishLicense.cs
- PlacementWorkspace.cs
- InplaceBitmapMetadataWriter.cs
- Win32.cs
- PropertyCollection.cs
- UrlMapping.cs
- FormViewPagerRow.cs
- DoubleLink.cs
- OuterProxyWrapper.cs
- ThreadStartException.cs
- PathHelper.cs
- SymLanguageType.cs
- ErrorFormatter.cs
- ScriptIgnoreAttribute.cs
- NavigationWindow.cs
- WebUtil.cs
- ConfigXmlDocument.cs
- UnmanagedMemoryStream.cs
- WebPartConnectionsCloseVerb.cs
- DataGridColumnCollection.cs
- DependencyPropertyHelper.cs
- ScrollBar.cs
- WsatServiceCertificate.cs
- XamlPathDataSerializer.cs
- Constraint.cs
- EmissiveMaterial.cs
- SafeFileMappingHandle.cs
- DataColumnMapping.cs
- DeviceContext.cs
- IEnumerable.cs
- SortQuery.cs
- Point3DIndependentAnimationStorage.cs
- ThreadExceptionEvent.cs
- XmlDataProvider.cs
- DataGridViewCellStateChangedEventArgs.cs
- TypeDescriptionProvider.cs
- WebPartEditorCancelVerb.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- PropertyDescriptor.cs
- MultiBindingExpression.cs
- Preprocessor.cs
- Point4DValueSerializer.cs
- PathFigureCollectionConverter.cs
- SkipQueryOptionExpression.cs
- AstTree.cs
- VariableDesigner.xaml.cs
- ClientCultureInfo.cs
- PropertyValue.cs
- ControlAdapter.cs
- FindResponse.cs
- XmlElement.cs
- MsmqAppDomainProtocolHandler.cs
- WorkflowMarkupSerializationException.cs
- DrawingAttributes.cs
- DtcInterfaces.cs
- SQLByteStorage.cs
- WebHeaderCollection.cs
- SQLUtility.cs
- SmtpNegotiateAuthenticationModule.cs
- TdsParserStaticMethods.cs
- FileDetails.cs
- securitymgrsite.cs
- FakeModelPropertyImpl.cs
- MimeMultiPart.cs
- ExpressionUtilities.cs
- ThemeableAttribute.cs
- OutputScopeManager.cs
- VerticalAlignConverter.cs
- ColorComboBox.cs
- Socket.cs
- SqlExpander.cs
- CodeGenerator.cs
- ResourceProviderFactory.cs
- IntSecurity.cs
- CodeComment.cs
- FileFormatException.cs
- SmiEventSink.cs
- FtpWebResponse.cs
- MissingMemberException.cs
- BufferModeSettings.cs
- ErrorEventArgs.cs
- EntityObject.cs
- ToolStripStatusLabel.cs
- RuntimeArgument.cs
- CalendarDay.cs
- FormsAuthenticationConfiguration.cs
- UTF7Encoding.cs
- AccessDataSourceDesigner.cs
- CodeDirectiveCollection.cs
- DefaultMemberAttribute.cs
- SoapIgnoreAttribute.cs
- GenericsInstances.cs
- CheckBoxStandardAdapter.cs