From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- .../pragmarx/google2fa-qrcode/src/Google2FA.php | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php (limited to 'srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php') diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php new file mode 100644 index 0000000..a4d6340 --- /dev/null +++ b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php @@ -0,0 +1,134 @@ +getBaconQRCodeVersion() === 1) { + if ($imageBackEnd instanceof RendererInterface) { + $this->imageBackEnd = $imageBackEnd; + } else { + $this->imageBackEnd = new Png(); + } + } else { + if ($imageBackEnd instanceof ImageBackEndInterface) { + $this->imageBackEnd = $imageBackEnd; + } else { + $this->imageBackEnd = new ImagickImageBackEnd(); + } + } + } + + /** + * Generates a QR code data url to display inline. + * + * @param string $company + * @param string $holder + * @param string $secret + * @param int $size + * @param string $encoding Default to UTF-8 + * + * @return string + */ + public function getQRCodeInline($company, $holder, $secret, $size = 200, $encoding = 'utf-8') + { + return $this->getBaconQRCodeVersion() === 1 + ? $this->getQRCodeInlineV1($company, $holder, $secret, $size, $encoding) + : $this->getQRCodeInlineV2($company, $holder, $secret, $size, $encoding); + } + + /** + * Generates a QR code data url to display inline for Bacon QRCode v1 + * + * @param string $company + * @param string $holder + * @param string $secret + * @param int $size + * @param string $encoding Default to UTF-8 + * + * @return string + */ + public function getQRCodeInlineV1($company, $holder, $secret, $size = 200, $encoding = 'utf-8') + { + $url = $this->getQRCodeUrl($company, $holder, $secret); + + $renderer = $this->imageBackEnd; + $renderer->setWidth($size); + $renderer->setHeight($size); + + $bacon = new BaconQrCodeWriter($renderer); + $data = $bacon->writeString($url, $encoding); + + if ($this->imageBackEnd instanceof Png) { + return 'data:image/png;base64,'.base64_encode($data); + } + return $data; + } + + /** + * Generates a QR code data url to display inline for Bacon QRCode v2 + * + * @param string $company + * @param string $holder + * @param string $secret + * @param int $size + * @param string $encoding Default to UTF-8 + * + * @return string + */ + public function getQRCodeInlineV2($company, $holder, $secret, $size = 200, $encoding = 'utf-8') + { + $renderer = new ImageRenderer( + (new RendererStyle($size))->withSize($size), + $this->imageBackEnd + ); + + $bacon = new Writer($renderer); + + $data = $bacon->writeString( + $this->getQRCodeUrl($company, $holder, $secret), + $encoding + ); + + if ($this->imageBackEnd instanceof ImagickImageBackEnd) { + return 'data:image/png;base64,'.base64_encode($data); + } + + return $data; + } + + /** + * Get Bacon QRCode current version + * + * @return int + */ + public function getBaconQRCodeVersion() + { + return class_exists('BaconQrCode\Renderer\Image\Png') && class_exists('BaconQrCode\Writer') + ? 1 + : 2; + } +} -- cgit