X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=nss%2Fcash.h;fp=nss%2Fcash.h;h=b6d92a6a6c89f12d2550cc99ec33ed1dd183ba78;hb=92afde4e875a96e1ab865e29b9f0d11b08d7db1c;hp=0000000000000000000000000000000000000000;hpb=748846b9a65726fd19d43b45a4db68ef4c2e77f4;p=nsscash%2Fnsscash.git diff --git a/nss/cash.h b/nss/cash.h new file mode 100644 index 0000000..b6d92a6 --- /dev/null +++ b/nss/cash.h @@ -0,0 +1,53 @@ +/* + * General header of nsscash + * + * Copyright (C) 2019 Simon Ruderich + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#ifndef CASH_H +#define CASH_H + +#include + + +// Global constants + +#define MAGIC "NSS-CASH" + +// Defined in Makefile +#ifndef NSSCASH_PASSWD_FILE +# define NSSCASH_PASSWD_FILE "/etc/passwd.nsscash" +#endif + + +// Global structs + +struct header { + char magic[8]; // magic string + uint64_t version; // also doubles as byte-order check + + uint64_t count; + + // All offsets are relative to data + uint64_t off_orig_index; + uint64_t off_id_index; + uint64_t off_name_index; + uint64_t off_data; + + char data[]; +} __attribute__((packed)); + +#endif