Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Security / Cryptography / RSAPKCS1SignatureDeformatter.cs / 1 / RSAPKCS1SignatureDeformatter.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // RSAPKCS1SignatureDeformatter.cs // namespace System.Security.Cryptography { [System.Runtime.InteropServices.ComVisible(true)] public class RSAPKCS1SignatureDeformatter : AsymmetricSignatureDeformatter { // // This class provides the PKCS#1 v1.5 signature format processing during // the verification process (i.e. decrypting the object). The class has // some special code for dealing with the CSP based RSA keys as the // formatting and verification is done within the CSP rather than in // managed code. // private RSA _rsaKey; // RSA Key value to do decrypt operation private String _strOID; // OID value for the HASH algorithm // // public constructors // public RSAPKCS1SignatureDeformatter() {} public RSAPKCS1SignatureDeformatter(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 bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) { 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"); if (rgbSignature == null) throw new ArgumentNullException("rgbSignature"); // 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).VerifyHash(rgbHash, _strOID, rgbSignature); } else { byte[] pad = Utils.RsaPkcs1Padding(_rsaKey, CryptoConfig.EncodeOID(_strOID), rgbHash); // Apply the public key to the signature data to get back the padded buffer actually signed. // Compare the two buffers to see if they match; ignoring any leading zeros return Utils.CompareBigIntArrays(_rsaKey.EncryptValue(rgbSignature), pad); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // RSAPKCS1SignatureDeformatter.cs // namespace System.Security.Cryptography { [System.Runtime.InteropServices.ComVisible(true)] public class RSAPKCS1SignatureDeformatter : AsymmetricSignatureDeformatter { // // This class provides the PKCS#1 v1.5 signature format processing during // the verification process (i.e. decrypting the object). The class has // some special code for dealing with the CSP based RSA keys as the // formatting and verification is done within the CSP rather than in // managed code. // private RSA _rsaKey; // RSA Key value to do decrypt operation private String _strOID; // OID value for the HASH algorithm // // public constructors // public RSAPKCS1SignatureDeformatter() {} public RSAPKCS1SignatureDeformatter(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 bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) { 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"); if (rgbSignature == null) throw new ArgumentNullException("rgbSignature"); // 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).VerifyHash(rgbHash, _strOID, rgbSignature); } else { byte[] pad = Utils.RsaPkcs1Padding(_rsaKey, CryptoConfig.EncodeOID(_strOID), rgbHash); // Apply the public key to the signature data to get back the padded buffer actually signed. // Compare the two buffers to see if they match; ignoring any leading zeros return Utils.CompareBigIntArrays(_rsaKey.EncryptValue(rgbSignature), 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
- ResXDataNode.cs
- FilterException.cs
- BuilderInfo.cs
- ConfigXmlReader.cs
- DataAdapter.cs
- ImpersonateTokenRef.cs
- Track.cs
- NavigatorOutput.cs
- SourceLineInfo.cs
- OdbcPermission.cs
- SignedPkcs7.cs
- PointLightBase.cs
- QueueTransferProtocol.cs
- HuffmanTree.cs
- SynchronizedInputAdaptor.cs
- BamlResourceSerializer.cs
- ListChunk.cs
- NegatedCellConstant.cs
- NameObjectCollectionBase.cs
- StringExpressionSet.cs
- FormsAuthenticationUserCollection.cs
- GorillaCodec.cs
- DataRow.cs
- SchemaNotation.cs
- AccessedThroughPropertyAttribute.cs
- DataColumnMappingCollection.cs
- ToolTipService.cs
- PagesChangedEventArgs.cs
- ValidateNames.cs
- ImageField.cs
- ViewDesigner.cs
- TagNameToTypeMapper.cs
- documentsequencetextcontainer.cs
- ProxyAttribute.cs
- NCryptNative.cs
- AutomationPeer.cs
- CancellationHandler.cs
- DataGridViewComboBoxColumn.cs
- ParenthesizePropertyNameAttribute.cs
- SHA1CryptoServiceProvider.cs
- CLRBindingWorker.cs
- X509SecurityTokenAuthenticator.cs
- DataSourceXmlAttributeAttribute.cs
- ExceptionRoutedEventArgs.cs
- ImageClickEventArgs.cs
- MapPathBasedVirtualPathProvider.cs
- HttpCachePolicyElement.cs
- DupHandleConnectionReader.cs
- CounterSetInstance.cs
- CodeMemberField.cs
- WebPartEditorApplyVerb.cs
- LayoutTableCell.cs
- FilterException.cs
- ConfigPathUtility.cs
- CachedBitmap.cs
- UInt64.cs
- PipeStream.cs
- EdmValidator.cs
- Symbol.cs
- ReachSerializationUtils.cs
- XmlStreamStore.cs
- remotingproxy.cs
- UserNameSecurityToken.cs
- DataGridAutoFormatDialog.cs
- TextSchema.cs
- ConfigurationProperty.cs
- ValidatorAttribute.cs
- SafeNativeMethodsMilCoreApi.cs
- HttpCookieCollection.cs
- SessionState.cs
- ForwardPositionQuery.cs
- Rect.cs
- ContainerAction.cs
- Zone.cs
- ExpressionVisitorHelpers.cs
- ListViewDeletedEventArgs.cs
- BinaryParser.cs
- ExceptionWrapper.cs
- WorkflowItemPresenter.cs
- ToolboxComponentsCreatingEventArgs.cs
- GridErrorDlg.cs
- AppSettings.cs
- DataView.cs
- PrePostDescendentsWalker.cs
- StringFunctions.cs
- WinInetCache.cs
- SaveFileDialogDesigner.cs
- StylusButton.cs
- TextAdaptor.cs
- ServiceInfo.cs
- EdmToObjectNamespaceMap.cs
- FontStyleConverter.cs
- Normalization.cs
- SchemaType.cs
- HostedElements.cs
- TrayIconDesigner.cs
- counter.cs
- ControlParameter.cs
- SqlDataSourceCommandEventArgs.cs
- HtmlLink.cs