ntlmssp: Add ntlmssp_blob_matches_magic()
[amitay/samba.git] / libcli / auth / ntlmssp.h
index 97192b8c6feba8eed0b7f9a4f4c5abf6d056f2f5..cf8bb8dd301cc1e63fc9d973274ef88901620acf 100644 (file)
@@ -129,11 +129,45 @@ struct ntlmssp_state
         *
         * The callback must reads the feilds of this structure for the information it needs on the user
         * @param ntlmssp_state This structure
+        * @param mem_ctx Talloc context for LM and NT session key to be returned on
         * @param nt_session_key If an NT session key is returned by the authentication process, return it here
         * @param lm_session_key If an LM session key is returned by the authentication process, return it here
         *
         */
-       NTSTATUS (*check_password)(struct ntlmssp_state *ntlmssp_state, DATA_BLOB *nt_session_key, DATA_BLOB *lm_session_key);
+       NTSTATUS (*check_password)(struct ntlmssp_state *ntlmssp_state, TALLOC_CTX *mem_ctx,
+                                  DATA_BLOB *nt_session_key, DATA_BLOB *lm_session_key);
 
        union ntlmssp_crypt_state *crypt;
 };
+
+/* The following definitions come from libcli/auth/ntlmssp_sign.c  */
+
+NTSTATUS ntlmssp_sign_packet(struct ntlmssp_state *ntlmssp_state,
+                            TALLOC_CTX *sig_mem_ctx,
+                            const uint8_t *data, size_t length,
+                            const uint8_t *whole_pdu, size_t pdu_length,
+                            DATA_BLOB *sig);
+NTSTATUS ntlmssp_check_packet(struct ntlmssp_state *ntlmssp_state,
+                             const uint8_t *data, size_t length,
+                             const uint8_t *whole_pdu, size_t pdu_length,
+                             const DATA_BLOB *sig) ;
+NTSTATUS ntlmssp_seal_packet(struct ntlmssp_state *ntlmssp_state,
+                            TALLOC_CTX *sig_mem_ctx,
+                            uint8_t *data, size_t length,
+                            const uint8_t *whole_pdu, size_t pdu_length,
+                            DATA_BLOB *sig);
+NTSTATUS ntlmssp_unseal_packet(struct ntlmssp_state *ntlmssp_state,
+                              uint8_t *data, size_t length,
+                              const uint8_t *whole_pdu, size_t pdu_length,
+                              const DATA_BLOB *sig);
+NTSTATUS ntlmssp_wrap(struct ntlmssp_state *ntlmssp_state,
+                     TALLOC_CTX *out_mem_ctx,
+                     const DATA_BLOB *in,
+                     DATA_BLOB *out);
+NTSTATUS ntlmssp_unwrap(struct ntlmssp_state *ntlmssp_stae,
+                       TALLOC_CTX *out_mem_ctx,
+                       const DATA_BLOB *in,
+                       DATA_BLOB *out);
+NTSTATUS ntlmssp_sign_init(struct ntlmssp_state *ntlmssp_state);
+
+bool ntlmssp_blob_matches_magic(const DATA_BLOB *blob);