Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SQLInt32Storage.cs
- RepeatBehavior.cs
- StoreContentChangedEventArgs.cs
- EntityDataSourceMemberPath.cs
- StateMachineAction.cs
- BigInt.cs
- MetadataSource.cs
- TrackingProfile.cs
- indexingfiltermarshaler.cs
- SqlLiftIndependentRowExpressions.cs
- RouteValueExpressionBuilder.cs
- NativeRecognizer.cs
- TagElement.cs
- ConstraintStruct.cs
- TypeSource.cs
- MemberMemberBinding.cs
- Math.cs
- PackagePartCollection.cs
- UnionQueryOperator.cs
- FormViewDeletedEventArgs.cs
- RepeatEnumerable.cs
- BufferedStream.cs
- UshortList2.cs
- ClientData.cs
- Exception.cs
- QueryableFilterUserControl.cs
- RegexReplacement.cs
- XmlSchemaDatatype.cs
- DataGridViewAdvancedBorderStyle.cs
- ActivityStateQuery.cs
- ControlSerializer.cs
- DateTimeUtil.cs
- BamlWriter.cs
- ConfigPathUtility.cs
- ItemCheckedEvent.cs
- AudioDeviceOut.cs
- FixedSOMElement.cs
- MouseGestureValueSerializer.cs
- ObjectDataSource.cs
- DataGridColumn.cs
- SQLStringStorage.cs
- RegexMatchCollection.cs
- Control.cs
- HeaderCollection.cs
- GeneratedContractType.cs
- _SSPIWrapper.cs
- Site.cs
- ImageListDesigner.cs
- String.cs
- SafeCryptContextHandle.cs
- XmlTypeAttribute.cs
- Literal.cs
- ReaderWriterLockWrapper.cs
- HtmlInputButton.cs
- FixedPageProcessor.cs
- ClientSideProviderDescription.cs
- DataBindingList.cs
- LogPolicy.cs
- AdapterDictionary.cs
- CqlQuery.cs
- SchemaCollectionCompiler.cs
- ColumnMap.cs
- StyleCollection.cs
- EmptyElement.cs
- ChtmlPageAdapter.cs
- FormParameter.cs
- InternalTypeHelper.cs
- AdvancedBindingPropertyDescriptor.cs
- WorkItem.cs
- ReliableRequestSessionChannel.cs
- IERequestCache.cs
- DependencyPropertyAttribute.cs
- VariableQuery.cs
- DeploymentExceptionMapper.cs
- ObjectConverter.cs
- ListControlDesigner.cs
- XmlAttributes.cs
- FamilyMap.cs
- SourceChangedEventArgs.cs
- KnownAssemblyEntry.cs
- BigInt.cs
- BrowserCapabilitiesFactory35.cs
- CustomAttribute.cs
- PropertiesTab.cs
- WriteableBitmap.cs
- NoResizeSelectionBorderGlyph.cs
- FixedFindEngine.cs
- XmlNavigatorStack.cs
- MouseEventArgs.cs
- AppendHelper.cs
- SqlCacheDependencyDatabaseCollection.cs
- OdbcParameter.cs
- StringUtil.cs
- Listbox.cs
- ImageClickEventArgs.cs
- TreeChangeInfo.cs
- RichTextBox.cs
- DBDataPermissionAttribute.cs
- GenerateDerivedKeyRequest.cs
- IndexOutOfRangeException.cs