Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / RC2.cs / 1305376 / 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
//
[System.Security.SecuritySafeCritical] // auto-generated
new static public RC2 Create() {
return Create("System.Security.Cryptography.RC2");
}
[System.Security.SecuritySafeCritical] // auto-generated
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
//
[System.Security.SecuritySafeCritical] // auto-generated
new static public RC2 Create() {
return Create("System.Security.Cryptography.RC2");
}
[System.Security.SecuritySafeCritical] // auto-generated
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
- VScrollBar.cs
- WizardStepCollectionEditor.cs
- DefaultEventAttribute.cs
- SafeWaitHandle.cs
- WebServiceParameterData.cs
- CaretElement.cs
- FeatureSupport.cs
- EditableTreeList.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- MethodAccessException.cs
- SemaphoreSecurity.cs
- SqlInternalConnectionTds.cs
- FileStream.cs
- ConfigUtil.cs
- MultilineStringConverter.cs
- translator.cs
- XmlMembersMapping.cs
- ToolStripPanelCell.cs
- EntityType.cs
- NonVisualControlAttribute.cs
- SafeEventLogWriteHandle.cs
- XmlElementAttributes.cs
- EntityClassGenerator.cs
- HttpMethodConstraint.cs
- SessionEndingEventArgs.cs
- Inline.cs
- TextModifierScope.cs
- WindowsRegion.cs
- SystemDiagnosticsSection.cs
- Label.cs
- ExtensibleClassFactory.cs
- Main.cs
- InstanceView.cs
- GreenMethods.cs
- TextHidden.cs
- ConfigurationException.cs
- DocumentApplicationDocumentViewer.cs
- _CommandStream.cs
- ConfigurationManager.cs
- ColumnReorderedEventArgs.cs
- Rect3D.cs
- QilBinary.cs
- HashHelper.cs
- CommittableTransaction.cs
- contentDescriptor.cs
- MenuItemStyleCollection.cs
- RadioButton.cs
- Polygon.cs
- AvtEvent.cs
- PixelShader.cs
- CustomErrorCollection.cs
- IndexingContentUnit.cs
- Simplifier.cs
- SqlDependency.cs
- WebZone.cs
- InkPresenter.cs
- FontFamilyValueSerializer.cs
- SecurityState.cs
- WmlPanelAdapter.cs
- CheckBoxRenderer.cs
- ChainedAsyncResult.cs
- Translator.cs
- CorrelationManager.cs
- CodeDOMProvider.cs
- SecurityResources.cs
- SoapCodeExporter.cs
- CustomPopupPlacement.cs
- AnimationStorage.cs
- ResourceLoader.cs
- LateBoundBitmapDecoder.cs
- SyndicationLink.cs
- Atom10FormatterFactory.cs
- MarkupCompilePass1.cs
- TextAnchor.cs
- TableRowsCollectionEditor.cs
- ReferencedCollectionType.cs
- sortedlist.cs
- SchemaTableOptionalColumn.cs
- ExternalException.cs
- FileDialogCustomPlace.cs
- CommandBindingCollection.cs
- XmlQueryTypeFactory.cs
- MouseOverProperty.cs
- CodeGenerationManager.cs
- _SSPIWrapper.cs
- NegatedCellConstant.cs
- DeferredTextReference.cs
- WarningException.cs
- SimpleApplicationHost.cs
- XmlCodeExporter.cs
- AnnotationResourceChangedEventArgs.cs
- DefinitionUpdate.cs
- DataGridColumnEventArgs.cs
- NavigatorInput.cs
- ForeignKeyConstraint.cs
- ProcessHost.cs
- WsatExtendedInformation.cs
- BindingsCollection.cs
- AppDomainUnloadedException.cs
- RoutedCommand.cs