__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

declare(strict_types=1);

/*
 * The MIT License (MIT)
 *
 * Copyright (c) 2018-2020 Spomky-Labs
 *
 * This software may be modified and distributed under the terms
 * of the MIT license.  See the LICENSE file for details.
 */

namespace CBOR;

use Brick\Math\BigInteger;
use GMP;
use InvalidArgumentException;

final class SignedIntegerObject extends AbstractCBORObject
{
    private const MAJOR_TYPE = 0b001;

    /**
     * @var string|null
     */
    private $data;

    public function __construct(int $additionalInformation, ?string $data)
    {
        parent::__construct(self::MAJOR_TYPE, $additionalInformation);
        $this->data = $data;
    }

    public function __toString(): string
    {
        $result = parent::__toString();
        if (null !== $this->data) {
            $result .= $this->data;
        }

        return $result;
    }

    public static function createObjectForValue(int $additionalInformation, ?string $data): self
    {
        return new self($additionalInformation, $data);
    }

    public static function create(int $value): self
    {
        return self::createFromString((string) $value);
    }

    public static function createFromString(string $value): self
    {
        $integer = BigInteger::of($value);

        return self::createBigInteger($integer);
    }

    /**
     * @deprecated Deprecated since v1.1 and will be removed in v2.0. Please use "create" or "createFromString" instead
     */
    public static function createFromGmpValue(GMP $value): self
    {
        if (gmp_cmp($value, gmp_init(0)) >= 0) {
            throw new InvalidArgumentException('The value must be a negative integer.');
        }

        $minusOne = gmp_init(-1);
        $computed_value = gmp_sub($minusOne, $value);

        switch (true) {
            case gmp_intval($computed_value) < 24:
                $ai = gmp_intval($computed_value);
                $data = null;
                break;
            case gmp_cmp($computed_value, gmp_init('FF', 16)) < 0:
                $ai = 24;
                $data = self::hex2bin(str_pad(gmp_strval($computed_value, 16), 2, '0', STR_PAD_LEFT));
                break;
            case gmp_cmp($computed_value, gmp_init('FFFF', 16)) < 0:
                $ai = 25;
                $data = self::hex2bin(str_pad(gmp_strval($computed_value, 16), 4, '0', STR_PAD_LEFT));
                break;
            case gmp_cmp($computed_value, gmp_init('FFFFFFFF', 16)) < 0:
                $ai = 26;
                $data = self::hex2bin(str_pad(gmp_strval($computed_value, 16), 8, '0', STR_PAD_LEFT));
                break;
            default:
                throw new InvalidArgumentException('Out of range. Please use NegativeBigIntegerTag tag with ByteStringObject object instead.');
        }

        return new self($ai, $data);
    }

    public function getValue(): string
    {
        return $this->getNormalizedData();
    }

    public function getNormalizedData(bool $ignoreTags = false): string
    {
        if (null === $this->data) {
            return (string) (-1 - $this->additionalInformation);
        }

        $result = Utils::binToBigInteger($this->data);
        $minusOne = BigInteger::of(-1);

        return $minusOne->minus($result)->toBase(10);
    }

    private static function createBigInteger(BigInteger $integer): self
    {
        if ($integer->isGreaterThanOrEqualTo(BigInteger::zero())) {
            throw new InvalidArgumentException('The value must be a negative integer.');
        }

        $minusOne = BigInteger::of(-1);
        $computed_value = $minusOne->minus($integer);

        switch (true) {
            case $computed_value->isLessThan(BigInteger::of(24)):
                $ai = $computed_value->toInt();
                $data = null;
                break;
            case $computed_value->isLessThan(BigInteger::fromBase('FF', 16)):
                $ai = 24;
                $data = self::hex2bin(str_pad($computed_value->toBase(16), 2, '0', STR_PAD_LEFT));
                break;
            case $computed_value->isLessThan(BigInteger::fromBase('FFFF', 16)):
                $ai = 25;
                $data = self::hex2bin(str_pad($computed_value->toBase(16), 4, '0', STR_PAD_LEFT));
                break;
            case $computed_value->isLessThan(BigInteger::fromBase('FFFFFFFF', 16)):
                $ai = 26;
                $data = self::hex2bin(str_pad($computed_value->toBase(16), 8, '0', STR_PAD_LEFT));
                break;
            default:
                throw new InvalidArgumentException('Out of range. Please use NegativeBigIntegerTag tag with ByteStringObject object instead.');
        }

        return new self($ai, $data);
    }

    private static function hex2bin(string $data): string
    {
        $result = hex2bin($data);
        if (false === $result) {
            throw new InvalidArgumentException('Unable to convert the data');
        }

        return $result;
    }
}

Filemanager

Name Type Size Permission Actions
OtherObject Folder 0775
Tag Folder 0775
AbstractCBORObject.php File 971 B 0664
ByteStringObject.php File 1.25 KB 0664
ByteStringWithChunkObject.php File 1.84 KB 0664
CBORObject.php File 522 B 0664
Decoder.php File 5.66 KB 0664
InfiniteListObject.php File 1.62 KB 0664
InfiniteMapObject.php File 1.79 KB 0664
LengthCalculator.php File 1.85 KB 0664
ListObject.php File 2.33 KB 0664
MapItem.php File 691 B 0664
MapObject.php File 2.23 KB 0664
OtherObject.php File 1021 B 0664
SignedIntegerObject.php File 4.85 KB 0664
Stream.php File 319 B 0664
StringStream.php File 1.44 KB 0664
TagObject.php File 1.19 KB 0664
TextStringObject.php File 1.25 KB 0664
TextStringWithChunkObject.php File 1.83 KB 0664
UnsignedIntegerObject.php File 4.86 KB 0664
Utils.php File 1.08 KB 0664
Filemanager