Sample code for 30+ languages & platforms
SQL Server

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 SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    --  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.

    DECLARE @email int
    EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OASetProperty @email, 'Subject', 'Encrypted with RSAES-OAEP'

    EXEC sp_OASetProperty @email, 'OaepPadding', 1
    EXEC sp_OASetProperty @email, 'OaepHash', 'sha256'

    --  Some recipients require the MGF hash to match the OAEP hash.
    EXEC sp_OASetProperty @email, 'OaepMgfHash', 'sha256'


    EXEC sp_OAGetProperty @email, 'OaepMgfHash', @sTmp0 OUT
    PRINT 'OaepMgfHash = ' + @sTmp0

    EXEC @hr = sp_OADestroy @email


END
GO