Udostępnij za pośrednictwem


CryptoProvider Klasa

Definicja

Zapewnia 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ę EncryptedPackageEnvelopeza pomocą CryptoProvider 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

CryptoProvider jest tworzony w wyniku metody podczas wiązania Bind praw zarządzanych UseLicense z elementem 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

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

Decrypt(Byte[])

Odszyfrowuje tekst szyfrujący w celu wyczyszczenia tekstu.

Dispose()

Zwalnia wszelkie zasoby używane przez element CryptoProvider.

Dispose(Boolean)

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

Encrypt(Byte[])

Szyfruje tekst czysty do szyfrowania tekstu.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(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()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

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

(Odziedziczone po Object)
ToString()

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

(Odziedziczone po Object)

Dotyczy

Zobacz też