Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Genel ileti kodlama yordamı aşağıdaki gibidir.
İleti kodlamak için
- İstenen veri türü için uygun veri yapılarını başlatın.
- CryptMsgOpenToEncodeçağırarak gerekli bağımsız değişkenleri geçirin. CryptMsgOpenToEncodeçağrılırken, CryptMsgUpdate için sağlanacak veriler zaten mesaj kodlaması yapılmışsa, pszInnerContentObjID içine uygun nesne tanımlayıcısını geçirin (örneğin, szOID_RSA_signedData için "1.2.840.113549.1.7.2"). pszInnerContentObjID NULL ise, iç içerik türü önceden kodlanmamış olduğu varsayılır ve uygun şekilde işlenir.
- İletiyi tamamlamak için CryptMsgUpdate gerektiği kadar çağırın. Son çağrıda fFinal parametresini TRUE olarak ayarlayın. (Ayrıntılar için bkz. CryptMsgUpdate).
- İçerik gibi istenen parametrelere bir işaretçi almak için CryptMsgGetParamçağırın. Basit ve genel verileri kodlamak için dwParamtypeiçin CMSG_CONTENT_PARAM kullanın.
- CryptMsgCloseçağrısı yaparak iletiyi kapatın.
Bu yordam, işlev çağrılarında belirtilen türde kodlanmış bir iletiyle sonuçlanır.
Genel iletinin kodunu çözme yordamı aşağıdaki gibidir.
İletinin kodunu çözmek için
- Arabellekte kodlanmış verileri tutmak için gereken uzunluğu, CryptMsgCalculateEncodedLengthkullanarak belirleyin.
- CryptMsgOpenToDecodeçağrısı yaparak gerekli bağımsız değişkenleri geçirin. Internet Explorer sürüm 3.0 ile uyumluluğu korumak için dwMsgType parametresi sağlanır. Internet Explorer 3.0'da oluşturulan imzalı veriler üst bilgi içermez. Bu nedenle, böyle bir ileti dosya imzalarından ayıklanırsa, ileti türü işleve geçirilmelidir. dwMsgType parametresine sıfır geçirilirse, işlev iletideki üst bilgiden ileti türünü okur. Üst bilgi eksikse işlev çağrısı başarısız olur. Eğer başarılı olursa, açılan mesajın tanıtıcısı geri döndürülür.
- CryptMsgUpdate bir kez çağırılmalıdır. Bu, ileti türüne bağlı olarak iletide uygun eylemlerin yapılmasına neden olur.
- İletinin ek şifre çözme veya imza doğrulaması gibi ek işlenmesi için, dwCtrlTypeiçinde istenen eylemi geçirerek CryptMsgControlçağrısı yapın.
- İçerik gibi istenen parametrelere bir işaretçi almak için CryptMsgGetParamçağırın. Basit genel verilerin kodunu çözmek için dwParamtype parametresi için CMSG_CONTENT_PARAM kullanın.
- İletiyi kapatmak için CryptMsgCloseçağırın.
Bu adımları uygulayan bir örnek için bkz. Örnek C Programı: Veri Kodlama ve Kod Çözme. İmzalı iletinin kodlama, kod çözme ve imzasını doğrulama işlemini gösteren yordamlar ve örnek için bkz. Örnek C Programı: İmzalama, Kodlama, Kod Çözme ve İletiyi Doğrulama.