Język

CryptoProvider Klasa

Definicja

Udostępnia usługi zarządzania prawami cyfrowymi do szyfrowania i odszyfrowywania chronionej zawartości.

public ref class CryptoProvider : IDisposable
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
public class CryptoProvider : IDisposable
public class CryptoProvider : IDisposable
[<System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)>]
type CryptoProvider = class
    interface IDisposable
type CryptoProvider = class
    interface IDisposable
Public Class CryptoProvider
Implements IDisposable
Dziedziczenie
CryptoProvider
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie pokazano, jak utworzyć klasę CryptoProviderprzy użyciu EncryptedPackageEnvelope klasy .

WriteStatus("   Signing the UnsignedPublishLicense\n" +
            "       to build the PublishLicense.");
UseLicense authorsUseLicense;
PublishLicense publishLicense =
    unsignedLicense.Sign(_secureEnv, out authorsUseLicense);

WriteStatus("   Binding the author's UseLicense and");
WriteStatus("       obtaining the CryptoProvider.");
CryptoProvider cryptoProvider = authorsUseLicense.Bind(_secureEnv);

WriteStatus("   Creating the EncryptedPackage.");
Stream packageStream = File.OpenRead(packageFile);
EncryptedPackageEnvelope ePackage =
    EncryptedPackageEnvelope.CreateFromPackage(encryptedFile,
        packageStream, publishLicense, cryptoProvider);

WriteStatus("   Adding an author's UseLicense.");
RightsManagementInformation rmi =
    ePackage.RightsManagementInformation;
rmi.SaveUseLicense(author, authorsUseLicense);

ePackage.Close();
WriteStatus("   Done - Package encryption complete.");

WriteStatus("Verifying package encryption.");
if (EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(encryptedFile))
{
    WriteStatus("   Confirmed - '" + encryptedFilename +
                "' is encrypted.");
}
else
{
    MessageBox.Show("ERROR: '" + encryptedFilename +
        "' is NOT ENCRYPTED.", "Encryption Error",
        MessageBoxButton.OK, MessageBoxImage.Error);
    WriteStatus("ERROR: '" + encryptedFilename +
                "' is NOT ENCRYPTED.\n");
    return false;
}
WriteStatus("   Signing the UnsignedPublishLicense" & vbLf & "       to build the PublishLicense.")
Dim authorsUseLicense As UseLicense = Nothing
Dim publishLicense As PublishLicense = unsignedLicense.Sign(_secureEnv, authorsUseLicense)

WriteStatus("   Binding the author's UseLicense and")
WriteStatus("       obtaining the CryptoProvider.")
Dim cryptoProvider As CryptoProvider = authorsUseLicense.Bind(_secureEnv)

WriteStatus("   Creating the EncryptedPackage.")
Dim packageStream As Stream = File.OpenRead(packageFile)
Dim ePackage As EncryptedPackageEnvelope = EncryptedPackageEnvelope.CreateFromPackage(encryptedFile, packageStream, publishLicense, cryptoProvider)

WriteStatus("   Adding an author's UseLicense.")
Dim rmi As RightsManagementInformation = ePackage.RightsManagementInformation
rmi.SaveUseLicense(author, authorsUseLicense)

ePackage.Close()
WriteStatus("   Done - Package encryption complete.")

WriteStatus("Verifying package encryption.")
If EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(encryptedFile) Then
    WriteStatus("   Confirmed - '" & encryptedFilename & "' is encrypted.")
Else
    MessageBox.Show("ERROR: '" & encryptedFilename & "' is NOT ENCRYPTED.", "Encryption Error", MessageBoxButton.OK, MessageBoxImage.Error)
    WriteStatus("ERROR: '" & encryptedFilename & "' is NOT ENCRYPTED." & vbLf)
    Return False
End If

Uwagi

CryptoProviderjest tworzony w wyniku Bind metody podczas tworzenia powiązania praw zarządzanych UseLicense z .SecureEnvironment

Podobnie jak w przypadku innych System.Security.RightsManagement typów, CryptoProvider można używać tylko w aplikacjach o pełnym zaufaniu.

Właściwości

Nazwa Opis
BlockSize

Pobiera rozmiar bloku szyfrowania w bajtach.

BoundGrants

Pobiera kolekcję zawierającą listę praw, które przeszły weryfikację i które zostały przyznane użytkownikowi.

CanDecrypt

Pobiera wartość wskazującą, czy użytkownik ma prawa do odszyfrowywania.

CanEncrypt

Pobiera wartość wskazującą, czy użytkownik ma prawa do szyfrowania.

CanMergeBlocks

Pobiera wartość wskazującą, czy Encrypt(Byte[]) i Decrypt(Byte[]) może akceptować bufory o różnych rozmiarach bloków.

Metody

Nazwa Opis
Decrypt(Byte[])

Odszyfrowuje tekst szyfrujący w celu wyczyszczenia tekstu.

Dispose()

Zwalnia wszystkie zasoby używane przez program CryptoProvider.

Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez CryptoProvider program i opcjonalnie zwalnia zarządzane zasoby.

Encrypt(Byte[])

Szyfruje tekst czysty do szyfrowania tekstu.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
Finalize()

Zwalnia zasoby i wykonuje wewnętrzne czyszczenie przed odzyskaniem wystąpienia przez odzyskiwanie pamięci.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też