VirtualBox

Changeset 94627 in vbox for trunk/include/iprt/crypto


Ignore:
Timestamp:
Apr 19, 2022 10:12:04 AM (3 years ago)
Author:
vboxsync
Message:

Runtime/crypto: Add additional APIs and supported algorithms for symmetric enc-/decryption, bugref:9955

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/crypto/cipher.h

    r93115 r94627  
    5353/** Nil symmetric cipher handle. */
    5454#define NIL_RTCRCIPHER          ((RTCRCIPHER)0)
     55/** Symmetric cipher context */
     56typedef struct RTCRCIPHERCTXINT *RTCRCIPHERCTX;
     57/** Pointer to a symmetric cipher context */
     58typedef RTCRCIPHERCTX          *PRTCRCIPHERCTX;
     59/** Nil symmetric cipher context */
     60#define NIL_RTCRCIPHERCTX       ((RTCRCIPHERCTX)0)
    5561
    5662/**
     
    6773    /** XTS-AES-256 (NIST SP 800-38E). */
    6874    RTCRCIPHERTYPE_XTS_AES_256,
     75    /** GCM-AES-128. */
     76    RTCRCIPHERTYPE_GCM_AES_128,
     77    /** GCM-AES-256. */
     78    RTCRCIPHERTYPE_GCM_AES_256,
     79    /* CTR-AES-128 */
     80    RTCRCIPHERTYPE_CTR_AES_128,
     81    /* CTR-AES-256 */
     82    RTCRCIPHERTYPE_CTR_AES_256,
    6983    /** End of valid symmetric cipher types. */
    7084    RTCRCIPHERTYPE_END,
     
    8195RTDECL(uint32_t) RTCrCipherGetBlockSize(RTCRCIPHER hCipher);
    8296
     97RTDECL(int) RTCrCipherCtxFree(RTCRCIPHERCTX phCipherCtx);
     98
     99RTDECL(int) RTCrCipherCtxEncryptInit(RTCRCIPHER hCipher, void const *pvKey, size_t cbKey,
     100                                     void const *pvInitVector, size_t cbInitVector,
     101                                     void const *pvAuthData, size_t cbAuthData,
     102                                     PRTCRCIPHERCTX phCipherCtx);
     103RTDECL(int) RTCrCipherCtxEncryptProcess(RTCRCIPHERCTX hCipherCtx, void const *pvPlainText, size_t cbPlainText,
     104                                        void *pvEncrypted, size_t cbEncrypted, size_t *pcbEncrypted);
     105RTDECL(int) RTCrCipherCtxEncryptFinish(RTCRCIPHERCTX hCipherCtx,
     106                                       void *pvEncrypted, size_t *pcbEncrypted,
     107                                       void *pvTag, size_t cbTag, size_t *pcbTag);
     108
     109RTDECL(int) RTCrCipherCtxDecryptInit(RTCRCIPHER hCipher, void const *pvKey, size_t cbKey,
     110                                     void const *pvInitVector, size_t cbInitVector,
     111                                     void const *pvAuthData, size_t cbAuthData,
     112                                     void *pvTag, size_t cbTag, PRTCRCIPHERCTX phCipherCtx);
     113RTDECL(int) RTCrCipherCtxDecryptProcess(RTCRCIPHERCTX hCipherCtx,
     114                                        void const *pvEncrypted, size_t cbEncrypted,
     115                                        void *pvPlainText, size_t cbPlainText, size_t *pcbPlainText);
     116RTDECL(int) RTCrCipherCtxDecryptFinish(RTCRCIPHERCTX hCipherCtx,
     117                                       void *pvPlainText, size_t *pcbPlainText);
     118
     119
    83120RTDECL(int) RTCrCipherEncrypt(RTCRCIPHER hCipher, void const *pvKey, size_t cbKey,
    84121                              void const *pvInitVector, size_t cbInitVector,
     
    89126                              void const *pvEncrypted, size_t cbEncrypted,
    90127                              void *pvPlainText, size_t cbPlainText, size_t *pcbPlainText);
     128RTDECL(int) RTCrCipherEncryptEx(RTCRCIPHER hCipher, void const *pvKey, size_t cbKey,
     129                                void const *pvInitVector, size_t cbInitVector,
     130                                void const *pvAuthData, size_t cbAuthData,
     131                                void const *pvPlainText, size_t cbPlainText,
     132                                void *pvEncrypted, size_t cbEncrypted, size_t *pcbEncrypted,
     133                                void *pvTag, size_t cbTag, size_t *pcbTag);
     134RTDECL(int) RTCrCipherDecryptEx(RTCRCIPHER hCipher, void const *pvKey, size_t cbKey,
     135                                void const *pvInitVector, size_t cbInitVector,
     136                                void const *pvAuthData, size_t cbAuthData,
     137                                void *pvTag, size_t cbTag,
     138                                void const *pvEncrypted, size_t cbEncrypted,
     139                                void *pvPlainText, size_t cbPlainText, size_t *pcbPlainText);
    91140
    92141/** @} */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette