Exemplo n.º 1
0
BOOL get_interpreted_tag_uid(BYTE *response, BYTE tagtype)
{
        BYTE tmp[MAXUID + 1];

        if(get_tag_uid(tmp))
        {
            if(interpret_uid(response, tmp, tagtype))
                return write_wiegand_uid(response);
        }
        return FALSE;
}
Exemplo n.º 2
0
/// show contents of vtag
void vtag_dump(void)
{
    BYTE tmp[MAXBLOCKSIZE + 1], interpret;
    unsigned int i;

    UserMessage("          Type: %s", (BYTE *) TagTypes[RFIDlerVTag.TagType]);

    UserMessage("\r\n     Emulating: %s", (BYTE *) TagTypes[RFIDlerVTag.EmulatedTagType]);

    UserMessage("\r\n       Raw UID: %s", RFIDlerVTag.UID);

    // show interpreted UID
    if(RFIDlerVTag.EmulatedTagType == TAG_TYPE_NONE)
        interpret= RFIDlerVTag.TagType;
    else
        interpret= RFIDlerVTag.EmulatedTagType;
    UserMessage("\r\n           UID: %s", interpret_uid(tmp, RFIDlerVTag.UID, interpret) ? tmp : (BYTE *) "invalid!");

    // show config block if present
    if(config_block_number(&i, RFIDlerVTag.TagType))
    {
        UserMessage("%s","\r\n\r\n");
        config_block_show(&RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * i)], RFIDlerVTag.TagType);
    }

    if(RFIDlerVTag.DataBlocks == 0)
    {
        UserMessage("%s", "\r\n\r\n");
        return;
    }

    UserMessage("%s", "\r\n          Data:");
    tmp[HEXDIGITS(RFIDlerVTag.BlockSize)]= '\0';
    for(i= 0 ; i < RFIDlerVTag.DataBlocks ; ++i)
    {
        memcpy(tmp, &RFIDlerVTag.Data[HEXDIGITS(RFIDlerVTag.BlockSize * i)], HEXDIGITS(RFIDlerVTag.BlockSize));
        if(tmp[0])
        {
            UserMessageNum("\r\n             %d: ", i);
            UserMessage("%s", tmp);
        }
    }
    UserMessage("%s", "\r\n\r\n");
}
Exemplo n.º 3
0
// convert current vtag to new type
BOOL vtag_convert(BYTE *tagtype)
{
    BYTE tmp[MAXUID + 1], newtag;

    if(RFIDlerVTag.TagType == TAG_TYPE_NONE)
        return FALSE;

    // get current interpreted uid
    if(RFIDlerVTag.EmulatedTagType == TAG_TYPE_NONE)
        newtag= RFIDlerVTag.TagType;
    else
        newtag= RFIDlerVTag.EmulatedTagType;
    // check UID is valid
    if(!interpret_uid(tmp, RFIDlerVTag.UID, newtag))
        return FALSE;

    // create new VTAG from UID
    return vtag_create_from_uid(tagtype, newtag, tmp);
}
Exemplo n.º 4
0
static fs_node_t * file_from_ustar(struct tarfs * self, struct ustar * file, unsigned int offset) {
	fs_node_t * fs = malloc(sizeof(fs_node_t));
	memset(fs, 0, sizeof(fs_node_t));
	fs->device = self;
	fs->inode  = offset;
	fs->impl   = 0;
	char filename_workspace[256];
	memcpy(fs->name, filename_workspace, strlen(filename_workspace)+1);

	fs->uid = interpret_uid(file);
	fs->gid = interpret_gid(file);
	fs->length = interpret_size(file);
	fs->mask = interpret_mode(file);
	fs->nlink = 0; /* Unsupported */
	fs->flags = FS_FILE;
	if (file->type[0] == '5') {
		fs->flags = FS_DIRECTORY;
		fs->readdir = readdir_tarfs;
		fs->finddir = finddir_tarfs;
	} else if (file->type[0] == '1') {
		debug_print(ERROR, "Hardlink detected");
		/* go through file and find target, reassign inode to point to that */
	} else if (file->type[0] == '2') {
		fs->flags = FS_SYMLINK;
		fs->readlink = readlink_tarfs;
	} else {
		fs->flags = FS_FILE;
		fs->read = read_tarfs;
	}
	free(file);
#if 0
	/* TODO times are also available from the file */
	fs->atime = now();
	fs->mtime = now();
	fs->ctime = now();
#endif
	return fs;
}