Loading src/secureid.c +11 −6 Original line number Diff line number Diff line Loading @@ -140,17 +140,22 @@ void setAuthority(struct SID *sid,Authority authority){ void setSubAuthority(struct SID *sid,uint32_t uid){ sid->SubAuthority[0]=uid; sid->SubAuthorityCount=2; } void setDomainIndentfier(struct SID *sid,uint32_t* did,uint8_t count){ if(sid->SubAuthorityCount!=0){ munmap(sid->SubAuthority[1],(sizeof(uint32_t)*sid->SubAuthorityCount)); munmap32(sid->SubAuthority[1],(sizeof(uint32_t)*sid->SubAuthorityCount)); } if(sid->SubAuthority[0]==21){ sid->SubAuthority[1]=map32(sizeof(uint32_t)*count); memcpy32(sid->SubAuthority[1],did, (count * sizeof(uint32_t))); sid->SubAuthorityCount=count; for(uint32_t i=0; i<count; ++i){ sid->SubAuthority[i+1]=did[i]; } sid->SubAuthorityCount=(count+2); }else{ assert("only SubAuthority with value 21 supports domain indentfier !"); } Loading Loading @@ -233,15 +238,15 @@ int printSID(struct SID *sid,char *output,int size){ return written; }; void generateDomainIdentfier(uint32_t* output, int count){ void generateDomainIdentfier(uint32_t *did, int count){ FILE *devrandom; devrandom = fopen("/dev/random","r"); for(int i=0; i<count; ++i){ for(char ii=0; ii<sizeof(uint32_t); ii=ii+sizeof(char)){ output[i] |= getc(devrandom); while(did[i]< 1000000000){ did[i] = 1000000000 << fgetc(devrandom); } } Loading src/secureid.h +4 −4 Original line number Diff line number Diff line Loading @@ -155,12 +155,12 @@ extern "C" { int printSID(struct SID *sid,char *output,int size); /*! \fn void generateDomainIdentfier(uint32_t *output,int count) \fn void generateDomainIdentfier(struct SID *sid,int count) \brief This function will genarated domain indentfier numbers \param output a uint32_t array that included the unique number \param count the max size of output \param did output for the generated DomainIdentfier \param count the amount of domain indentfier's */ void generateDomainIdentfier(uint32_t *output,int count); void generateDomainIdentfier(uint32_t *did,int count); /*! Loading test/gendomain.c +6 −3 Original line number Diff line number Diff line Loading @@ -35,14 +35,17 @@ int main(int argc, char *argv[]){ struct SID *sid; initSID(&sid); uint32_t ident[3]; setAuthority(sid,NT); setSubAuthority(sid,21); generateDomainIdentfier(ident,3); setDomainIndentfier(sid,ident,3); uint32_t did[3]; generateDomainIdentfier(did,3); setDomainIndentfier(sid,did,3); setRid(sid,1001); Loading Loading
src/secureid.c +11 −6 Original line number Diff line number Diff line Loading @@ -140,17 +140,22 @@ void setAuthority(struct SID *sid,Authority authority){ void setSubAuthority(struct SID *sid,uint32_t uid){ sid->SubAuthority[0]=uid; sid->SubAuthorityCount=2; } void setDomainIndentfier(struct SID *sid,uint32_t* did,uint8_t count){ if(sid->SubAuthorityCount!=0){ munmap(sid->SubAuthority[1],(sizeof(uint32_t)*sid->SubAuthorityCount)); munmap32(sid->SubAuthority[1],(sizeof(uint32_t)*sid->SubAuthorityCount)); } if(sid->SubAuthority[0]==21){ sid->SubAuthority[1]=map32(sizeof(uint32_t)*count); memcpy32(sid->SubAuthority[1],did, (count * sizeof(uint32_t))); sid->SubAuthorityCount=count; for(uint32_t i=0; i<count; ++i){ sid->SubAuthority[i+1]=did[i]; } sid->SubAuthorityCount=(count+2); }else{ assert("only SubAuthority with value 21 supports domain indentfier !"); } Loading Loading @@ -233,15 +238,15 @@ int printSID(struct SID *sid,char *output,int size){ return written; }; void generateDomainIdentfier(uint32_t* output, int count){ void generateDomainIdentfier(uint32_t *did, int count){ FILE *devrandom; devrandom = fopen("/dev/random","r"); for(int i=0; i<count; ++i){ for(char ii=0; ii<sizeof(uint32_t); ii=ii+sizeof(char)){ output[i] |= getc(devrandom); while(did[i]< 1000000000){ did[i] = 1000000000 << fgetc(devrandom); } } Loading
src/secureid.h +4 −4 Original line number Diff line number Diff line Loading @@ -155,12 +155,12 @@ extern "C" { int printSID(struct SID *sid,char *output,int size); /*! \fn void generateDomainIdentfier(uint32_t *output,int count) \fn void generateDomainIdentfier(struct SID *sid,int count) \brief This function will genarated domain indentfier numbers \param output a uint32_t array that included the unique number \param count the max size of output \param did output for the generated DomainIdentfier \param count the amount of domain indentfier's */ void generateDomainIdentfier(uint32_t *output,int count); void generateDomainIdentfier(uint32_t *did,int count); /*! Loading
test/gendomain.c +6 −3 Original line number Diff line number Diff line Loading @@ -35,14 +35,17 @@ int main(int argc, char *argv[]){ struct SID *sid; initSID(&sid); uint32_t ident[3]; setAuthority(sid,NT); setSubAuthority(sid,21); generateDomainIdentfier(ident,3); setDomainIndentfier(sid,ident,3); uint32_t did[3]; generateDomainIdentfier(did,3); setDomainIndentfier(sid,did,3); setRid(sid,1001); Loading