Aracılığıyla paylaş


DecryptMessage (Digest) işlevi

DecryptMessage (Digest) işlevi bir iletinin şifresini çözer. Bazı paketler iletileri şifrelemez ve şifresini çözmez, bunun yerine bir bütünlük karması gerçekleştirir ve denetler.

Özet güvenlik destek sağlayıcısı (SSP), istemci ve sunucu arasında yalnızca SASL mekanizması olarak ileti alışverişi yapılan iletiler için şifreleme ve şifre çözme gizliliği sağlar.

Uyarı

Bir iş parçacığı şifreleniyorsa ve diğeri şifresi çözülüyorsa EncryptMessage (Digest) ve DecryptMessage (Digest) tek bir güvenlik destek sağlayıcısı arabirimi (SSPI) bağlamındaki iki farklı iş parçacığından aynı anda çağrılabilir. Birden fazla iş parçacığı şifreleniyorsa veya birden fazla iş parçacığının şifresi çözülüyorsa, her iş parçacığı benzersiz bir bağlam almalıdır.

Sözdizimi

SECURITY_STATUS SEC_ENTRY DecryptMessage(
  PCtxtHandle    phContext,
  PSecBufferDesc pMessage,
  unsigned long  MessageSeqNo,
  unsigned long  *pfQOP
);

Parametreler

phContext [içinde]

İletinin şifresini çözmek için kullanılacak güvenlik bağlamı tanıtıcısı.

pMessage [içeri, dışarı]

SecBufferDesc yapısının işaretçisi. Girişte, yapı bir veya daha fazla SecBuffer yapısına başvurur. Bunlardan en az biri SECBUFFER_DATA türünde olmalıdır. Bu arabellek şifrelenmiş iletiyi içerir. Şifrelenmiş iletinin şifresi yerinde çözülür ve arabelleğindeki özgün içeriğin üzerine yazılır.

Özet SSP'sini kullanırken, girişte yapı bir veya daha fazla SecBuffer yapısına başvurur. Bunlardan biri SECBUFFER_DATA veya SECBUFFER_STREAM türünde olmalı ve şifrelenmiş iletiyi içermelidir.

MessageSeqNo [içinde]

Varsa, taşıma uygulaması tarafından beklenen sıra numarası. Aktarım uygulaması sıra numaralarını korumazsa, bu parametre sıfır olarak ayarlanmalıdır.

Özet SSP'sini kullanırken bu parametre sıfır olarak ayarlanmalıdır. Özet SSP, sıralı numaralandırmayı dahili olarak yönetir.

pfQOP [çıkış]

Koruma kalitesini gösteren pakete özgü bayraklar alan ULONG türünde bir değişkene yönelik bir işaretçi.

Bu parametre aşağıdaki bayraklardan biri olabilir.

Değer Anlamı
SECQOP_WRAP_NO_ENCRYPT
İleti şifrelenmedi, ancak bir üst bilgi veya fragman oluşturuldu.
Not: KERB_WRAP_NO_ENCRYPT aynı değere ve aynı anlama sahiptir.
SIGN_ONLY
Özet SSP'sini kullanırken, güvenlik bağlamı yalnızca imzayı doğrulayacak şekilde ayarlandığında bu bayrağı kullanın. Daha fazla bilgi için bkz. Koruma Kalitesi.

Dönüş değeri

İşlev, iletinin doğru sırada alındığını doğrularsa, işlev SEC_E_OK döndürür.

İşlev iletinin şifresini çözemezse aşağıdaki hata kodlarından birini döndürür.

İade kodu Açıklama
SEC_E_BUFFER_TOO_SMALL İleti arabelleği çok küçük. Özet SSP ile kullanılır.
SEC_E_CRYPTO_SYSTEM_INVALID Güvenlik bağlamı için seçilen şifre desteklenmez. Özet SSP ile kullanılır.
SEC_E_INCOMPLETE_MESSAGE Giriş arabelleğindeki veriler eksik. Uygulamanın sunucudan daha fazla veri okuması ve DecryptMessage'ı (Özet) yeniden çağırması gerekir.
SEC_E_INVALID_HANDLE phContext parametresinde geçerli olmayan bir bağlam tanıtıcısı belirtildi. Özet SSP ile kullanılır.
SEC_E_MESSAGE_ALTERED İleti değiştirildi. Özet SSP ile kullanılır.
SEC_E_OUT_OF_SEQUENCE İleti doğru sırada alınmadı.
SEC_E_QOP_NOT_SUPPORTED Güvenlik bağlamı ne gizlilik ne de bütünlük tarafından desteklenmez. Özet SSP ile kullanılır.

Açıklamalar

Bazen bir uygulama uzak taraftan verileri okur, DecryptMessage (Digest) kullanarak şifresini çözmeyi dener ve DecryptMessage (Özet) işleminin başarılı olduğunu ancak çıkış arabelleklerinin boş olduğunu keşfeder. Bu normal bir davranıştır ve uygulamaların bununla başa çıkabilmesi gerekir.

Windows XP: Bu işlev UnsealMessage olarak da bilinirdi. Uygulamalar artık yalnızca DecryptMessage (Özet) kullanmalıdır.

Gereksinimler

Gereksinim Değer
Desteklenen en düşük düzeydeki istemci Windows XP [yalnızca masaüstü uygulamaları]
Desteklenen en düşük sunucu Windows Server 2003 [yalnızca masaüstü uygulamaları]
Başlık Sspi.h (Security.h dahil)
Kütüphane Secur32.lib
DLL Secur32.dll

Ayrıca bkz.