Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Security / Cryptography / RC2.cs / 1 / RC2.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// RC2.cs
//
namespace System.Security.Cryptography {
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class RC2 : SymmetricAlgorithm
{
protected int EffectiveKeySizeValue;
private static KeySizes[] s_legalBlockSizes = {
new KeySizes(64, 64, 0)
};
private static KeySizes[] s_legalKeySizes = {
new KeySizes(40, 1024, 8) // 1024 bits is theoretical max according to the RFC
};
//
// protected constructors
//
protected RC2() {
KeySizeValue = 128;
BlockSizeValue = 64;
FeedbackSizeValue = BlockSizeValue;
LegalBlockSizesValue = s_legalBlockSizes;
LegalKeySizesValue = s_legalKeySizes;
}
//
// public properties
//
public virtual int EffectiveKeySize {
get {
if (EffectiveKeySizeValue == 0) return KeySizeValue;
return EffectiveKeySizeValue;
}
set {
if (value > KeySizeValue) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
} else if (value == 0) {
EffectiveKeySizeValue = value;
} else if (value < 40) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKS40"));
} else {
if (ValidKeySize(value))
EffectiveKeySizeValue = value;
else
throw new CryptographicException(Environment.GetResourceString("Cryptography_InvalidKeySize"));
}
}
}
public override int KeySize {
get { return KeySizeValue; }
set {
if (value < EffectiveKeySizeValue) throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
base.KeySize = value;
}
}
//
// public methods
//
new static public RC2 Create() {
return Create("System.Security.Cryptography.RC2");
}
new static public RC2 Create(String AlgName) {
return (RC2) CryptoConfig.CreateFromName(AlgName);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// RC2.cs
//
namespace System.Security.Cryptography {
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class RC2 : SymmetricAlgorithm
{
protected int EffectiveKeySizeValue;
private static KeySizes[] s_legalBlockSizes = {
new KeySizes(64, 64, 0)
};
private static KeySizes[] s_legalKeySizes = {
new KeySizes(40, 1024, 8) // 1024 bits is theoretical max according to the RFC
};
//
// protected constructors
//
protected RC2() {
KeySizeValue = 128;
BlockSizeValue = 64;
FeedbackSizeValue = BlockSizeValue;
LegalBlockSizesValue = s_legalBlockSizes;
LegalKeySizesValue = s_legalKeySizes;
}
//
// public properties
//
public virtual int EffectiveKeySize {
get {
if (EffectiveKeySizeValue == 0) return KeySizeValue;
return EffectiveKeySizeValue;
}
set {
if (value > KeySizeValue) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
} else if (value == 0) {
EffectiveKeySizeValue = value;
} else if (value < 40) {
throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKS40"));
} else {
if (ValidKeySize(value))
EffectiveKeySizeValue = value;
else
throw new CryptographicException(Environment.GetResourceString("Cryptography_InvalidKeySize"));
}
}
}
public override int KeySize {
get { return KeySizeValue; }
set {
if (value < EffectiveKeySizeValue) throw new CryptographicException(Environment.GetResourceString("Cryptography_RC2_EKSKS"));
base.KeySize = value;
}
}
//
// public methods
//
new static public RC2 Create() {
return Create("System.Security.Cryptography.RC2");
}
new static public RC2 Create(String AlgName) {
return (RC2) CryptoConfig.CreateFromName(AlgName);
}
}
}
// 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
- FixedPage.cs
- PopupRoot.cs
- MergeFailedEvent.cs
- EntityParameter.cs
- WindowHideOrCloseTracker.cs
- InkCanvasFeedbackAdorner.cs
- SystemInfo.cs
- EntryIndex.cs
- DataGridColumnCollection.cs
- AudioFormatConverter.cs
- X509Chain.cs
- MultipartIdentifier.cs
- CodeTypeDelegate.cs
- TableCell.cs
- OracleBoolean.cs
- RuleProcessor.cs
- AsynchronousChannelMergeEnumerator.cs
- DesignerVerbCollection.cs
- WebEventCodes.cs
- RegexWriter.cs
- TwoPhaseCommit.cs
- sqlcontext.cs
- SQLDateTime.cs
- GPPOINT.cs
- BlurEffect.cs
- SubpageParaClient.cs
- ErasingStroke.cs
- ConfigXmlElement.cs
- SQLBytes.cs
- SizeChangedEventArgs.cs
- FrameworkElementFactory.cs
- AnnotationMap.cs
- Emitter.cs
- DataGridViewMethods.cs
- Profiler.cs
- MorphHelper.cs
- WebResourceUtil.cs
- XmlReaderDelegator.cs
- ResourceReferenceExpression.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- DebugView.cs
- ResXDataNode.cs
- MouseOverProperty.cs
- ValidationError.cs
- RouteValueExpressionBuilder.cs
- RuleSettingsCollection.cs
- NamedPermissionSet.cs
- GeometryCombineModeValidation.cs
- IncomingWebRequestContext.cs
- DataFormats.cs
- DesignerDataStoredProcedure.cs
- RuntimeVariablesExpression.cs
- MenuStrip.cs
- Exceptions.cs
- DataGridColumnEventArgs.cs
- MatrixTransform.cs
- StreamGeometry.cs
- IRCollection.cs
- FormClosedEvent.cs
- WizardForm.cs
- ObjectSecurity.cs
- ExecutionPropertyManager.cs
- SystemIcmpV6Statistics.cs
- EventLogPropertySelector.cs
- UIEndRequest.cs
- Brush.cs
- BufferedGraphics.cs
- DataGridViewLinkCell.cs
- ComponentResourceManager.cs
- TextRangeEdit.cs
- StoreContentChangedEventArgs.cs
- ExpressionTextBox.xaml.cs
- MarkupCompilePass2.cs
- TransportSecurityHelpers.cs
- login.cs
- XmlSchemaComplexContent.cs
- RegexMatch.cs
- CredentialManagerDialog.cs
- SelectionChangedEventArgs.cs
- Condition.cs
- SafeLibraryHandle.cs
- ProcessHostFactoryHelper.cs
- PropertyDescriptor.cs
- AsymmetricSignatureFormatter.cs
- PeerCollaboration.cs
- ResourceExpressionEditor.cs
- CapacityStreamGeometryContext.cs
- CodeGeneratorAttribute.cs
- ToolStripDropDownMenu.cs
- RegularExpressionValidator.cs
- TogglePatternIdentifiers.cs
- Dictionary.cs
- CheckPair.cs
- SecurityUtils.cs
- XmlDocumentSurrogate.cs
- ComplexObject.cs
- ScrollViewer.cs
- PropertyEmitterBase.cs
- WindowsSpinner.cs
- NativeMethodsCLR.cs