Sample code for 30+ languages & platforms
DataFlex

Set the OAEP MGF Hash for Encrypted Email

See more Email Object Examples

Demonstrates the Chilkat Email.OaepMgfHash property, which selects the mask-generation function (MGF) hash algorithm used by OAEP padding when encrypting email with RSAES-OAEP. Valid values are sha1, sha256, sha384, and sha512; the default is sha256. It is used only when OaepPadding is true, and some recipients require the MGF hash to match OaepHash.

Background: OAEP internally needs a "mask generation function" (MGF) — a way to stretch a hash into a longer pseudo-random mask — and that MGF is itself built on a hash algorithm. In principle the MGF hash can differ from the main OAEP hash, but many implementations assume the two are the same, so setting both to sha256 is the safest interoperable choice. Mismatched settings between sender and recipient are a common cause of "decryption failed" errors.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoEmail
    String sTemp1

    //  Demonstrates the Email.OaepMgfHash property, which selects the mask-generation
    //  function (MGF) hash algorithm used by OAEP padding when encrypting with RSAES-OAEP.
    //  Valid values: sha1, sha256, sha384, sha512.  The default is sha256.  It is used only
    //  when OaepPadding is true.

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "Encrypted with RSAES-OAEP"

    Set ComOaepPadding Of hoEmail To True
    Set ComOaepHash Of hoEmail To "sha256"

    //  Some recipients require the MGF hash to match the OAEP hash.
    Set ComOaepMgfHash Of hoEmail To "sha256"

    Get ComOaepMgfHash Of hoEmail To sTemp1
    Showln "OaepMgfHash = " sTemp1


End_Procedure