1 /* 2 * osd_sec.h - OSD security manager API 3 * 4 * Copyright (C) 2008 Panasas Inc. All rights reserved. 5 * 6 * Authors: 7 * Boaz Harrosh <ooo@electrozaur.com> 8 * Benny Halevy <bhalevy@panasas.com> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 12 * 13 */ 14 #ifndef __OSD_SEC_H__ 15 #define __OSD_SEC_H__ 16 17 #include <scsi/osd_protocol.h> 18 #include <scsi/osd_types.h> 19 20 /* 21 * Contains types and constants of osd capabilities and security 22 * encoding/decoding. 23 * API is trying to keep security abstract so initiator of an object 24 * based pNFS client knows as little as possible about security and 25 * capabilities. It is the Server's osd-initiator place to know more. 26 * Also can be used by osd-target. 27 */ 28 void osd_sec_encode_caps(void *caps, ...);/* NI */ 29 void osd_sec_init_nosec_doall_caps(void *caps, 30 const struct osd_obj_id *obj, bool is_collection, const bool is_v1); 31 32 bool osd_is_sec_alldata(struct osd_security_parameters *sec_params); 33 34 /* Conditionally sign the CDB according to security setting in ocdb 35 * with cap_key */ 36 void osd_sec_sign_cdb(struct osd_cdb *ocdb, const u8 *cap_key); 37 38 /* Unconditionally sign the BIO data with cap_key. 39 * Check for osd_is_sec_alldata() was done prior to calling this. */ 40 void osd_sec_sign_data(void *data_integ, struct bio *bio, const u8 *cap_key); 41 42 /* Version independent copy of caps into the cdb */ 43 void osd_set_caps(struct osd_cdb *cdb, const void *caps); 44 45 #endif /* ndef __OSD_SEC_H__ */ 46