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
- ExpressionNode.cs
- RtType.cs
- XmlDocument.cs
- HttpWrapper.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- OlePropertyStructs.cs
- StorageComplexPropertyMapping.cs
- FixedSOMSemanticBox.cs
- DeleteBookmarkScope.cs
- InternalConfigEventArgs.cs
- ValidationPropertyAttribute.cs
- MenuItemBindingCollection.cs
- ComPlusDiagnosticTraceSchemas.cs
- SqlVisitor.cs
- XmlMapping.cs
- RectangleHotSpot.cs
- WorkflowViewStateService.cs
- DataGridViewAutoSizeModeEventArgs.cs
- CircleHotSpot.cs
- ConfigurationSchemaErrors.cs
- TableSectionStyle.cs
- StylusButtonEventArgs.cs
- Variable.cs
- behaviorssection.cs
- CloseSequence.cs
- RegexFCD.cs
- OracleDataReader.cs
- SurrogateSelector.cs
- BinaryFormatter.cs
- AudioLevelUpdatedEventArgs.cs
- InternalTypeHelper.cs
- ConnectionInterfaceCollection.cs
- DNS.cs
- XamlReader.cs
- IArgumentProvider.cs
- ChtmlCalendarAdapter.cs
- XmlAttributeCache.cs
- Point3DCollectionValueSerializer.cs
- ToolStripDropDownItem.cs
- MeasureData.cs
- ProviderIncompatibleException.cs
- EnvelopeVersion.cs
- cache.cs
- LabelAutomationPeer.cs
- DataGridViewAdvancedBorderStyle.cs
- CommonDialog.cs
- ChannelBase.cs
- XmlILModule.cs
- MailWebEventProvider.cs
- DataFormats.cs
- OutputCacheSettings.cs
- Activator.cs
- CompiledQuery.cs
- SimpleWorkerRequest.cs
- Descriptor.cs
- SettingsPropertyWrongTypeException.cs
- SqlTypesSchemaImporter.cs
- _StreamFramer.cs
- StandardBindingOptionalReliableSessionElement.cs
- PolicyLevel.cs
- BadImageFormatException.cs
- HttpResponseHeader.cs
- TextTreeInsertUndoUnit.cs
- DataTableMappingCollection.cs
- PinnedBufferMemoryStream.cs
- MailMessageEventArgs.cs
- LocalizableResourceBuilder.cs
- AttachedPropertyBrowsableAttribute.cs
- NativeActivityMetadata.cs
- RequiredAttributeAttribute.cs
- AssemblyBuilder.cs
- NoneExcludedImageIndexConverter.cs
- DetailsViewPageEventArgs.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SafeLocalMemHandle.cs
- WebConfigurationHostFileChange.cs
- AuthorizationRule.cs
- ProfilePropertySettingsCollection.cs
- LoggedException.cs
- DataTableClearEvent.cs
- ExpressionsCollectionConverter.cs
- MsmqHostedTransportConfiguration.cs
- Visual3D.cs
- InstanceCreationEditor.cs
- LinqMaximalSubtreeNominator.cs
- SystemUdpStatistics.cs
- ValueTable.cs
- BitmapPalettes.cs
- InputScopeManager.cs
- DataServiceRequestOfT.cs
- EntityKeyElement.cs
- XmlNotation.cs
- RegisteredExpandoAttribute.cs
- StyleCollectionEditor.cs
- DataGridViewRowEventArgs.cs
- EncryptedReference.cs
- brushes.cs
- CompiledELinqQueryState.cs
- ManagementOptions.cs
- SendKeys.cs