aboutsummaryrefslogtreecommitdiff
path: root/security/py-fido2
diff options
context:
space:
mode:
authorMichael Gmelin <grembo@FreeBSD.org>2019-09-24 02:34:30 +0000
committerMichael Gmelin <grembo@FreeBSD.org>2019-09-24 02:34:30 +0000
commit08ac904ee5dbd407fae6243476df14d451ddc268 (patch)
treeccdae1ae6d19d591c3904911e1310b8ac35c3f42 /security/py-fido2
parentb53a14ae3efd035a16dd45f0049e1bcfd2fa0c67 (diff)
downloadports-08ac904ee5dbd407fae6243476df14d451ddc268.tar.gz
ports-08ac904ee5dbd407fae6243476df14d451ddc268.zip
Update to 0.7.1
PR: 240774 Approved by: koobs (python, maintainer)
Notes
Notes: svn path=/head/; revision=512694
Diffstat (limited to 'security/py-fido2')
-rw-r--r--security/py-fido2/Makefile3
-rw-r--r--security/py-fido2/distinfo6
-rw-r--r--security/py-fido2/files/patch-README.adoc25
-rw-r--r--security/py-fido2/files/patch-fido2___pyu2f_____init____.py18
-rw-r--r--security/py-fido2/files/patch-fido2___pyu2f_freebsd.py63
-rw-r--r--security/py-fido2/files/patch-setup.py24
-rw-r--r--security/py-fido2/files/patch-test___pyu2f_freebsd__test.py131
-rw-r--r--security/py-fido2/files/patch-test___pyu2f_linux__test.py30
-rw-r--r--security/py-fido2/files/patch-test___pyu2f_macos__test.py17
9 files changed, 4 insertions, 313 deletions
diff --git a/security/py-fido2/Makefile b/security/py-fido2/Makefile
index 1a3a8722ba00..57fa904a06f7 100644
--- a/security/py-fido2/Makefile
+++ b/security/py-fido2/Makefile
@@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= fido2
-PORTVERSION= 0.7.0
-PORTREVISION= 1
+PORTVERSION= 0.7.1
CATEGORIES= security python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/security/py-fido2/distinfo b/security/py-fido2/distinfo
index c9054a67bdfc..f15661bc5bc3 100644
--- a/security/py-fido2/distinfo
+++ b/security/py-fido2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1561156306
-SHA256 (fido2-0.7.0.tar.gz) = 47b02852780849bb4bb698b9727d61970ee77a83eb25715fe7c6235ebd648d87
-SIZE (fido2-0.7.0.tar.gz) = 171787
+TIMESTAMP = 1569250691
+SHA256 (fido2-0.7.1.tar.gz) = 4483b48ab3da0a3f3cc8e2f11d833160dfa2e6d12148e938982df4acd10b2682
+SIZE (fido2-0.7.1.tar.gz) = 176790
diff --git a/security/py-fido2/files/patch-README.adoc b/security/py-fido2/files/patch-README.adoc
deleted file mode 100644
index a11865339ee8..000000000000
--- a/security/py-fido2/files/patch-README.adoc
+++ /dev/null
@@ -1,25 +0,0 @@
-This was part of a pull request that has been merged uptream. Most likely
-this patch can be removed on the next release of python-fido2.
-
-See https://github.com/Yubico/python-fido2/pull/64 and
-https://github.com/Yubico/python-fido2/commit/19c86d5459931b8a76d1adc76420a8a1e0c0cf2e
-
---- README.adoc.orig 2019-06-17 12:31:00 UTC
-+++ README.adoc
-@@ -64,10 +64,15 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", \
- MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050"
- ----
-
-+Under FreeBSD you will either need to run as root or add rules for your device
-+to /etc/devd.conf, which can be automated by installing security/u2f-devd:
-
-+ # pkg install u2f-devd
-+
-+
- === Dependencies
- fido2 is compatible with CPython 2.7 (2.7.6 and up), 3.4 onwards, and is tested
--on Windows, MacOS, and Linux.
-+on Windows, MacOS, FreeBSD, and Linux.
-
- This project depends on Cryptography. For instructions on installing this
- dependency, see https://cryptography.io/en/latest/installation/.
diff --git a/security/py-fido2/files/patch-fido2___pyu2f_____init____.py b/security/py-fido2/files/patch-fido2___pyu2f_____init____.py
deleted file mode 100644
index a494665211bb..000000000000
--- a/security/py-fido2/files/patch-fido2___pyu2f_____init____.py
+++ /dev/null
@@ -1,18 +0,0 @@
-This was part of a pull request that has been merged upstream. Most likely
-this patch can be removed on the next release of python-fido2.
-
-See https://github.com/Yubico/python-fido2/pull/64 and
-https://github.com/Yubico/python-fido2/commit/19c86d5459931b8a76d1adc76420a8a1e0c0cf2e
-
---- fido2/_pyu2f/__init__.py.orig 2019-09-10 15:15:37 UTC
-+++ fido2/_pyu2f/__init__.py
-@@ -47,6 +47,9 @@ def InternalPlatformSwitch(funcname, *args, **kwargs):
- elif sys.platform.startswith('darwin'):
- from . import macos
- clz = macos.MacOsHidDevice
-+ elif sys.platform.startswith('freebsd'):
-+ from . import freebsd
-+ clz = freebsd.FreeBSDHidDevice
-
- if not clz:
- raise Exception('Unsupported platform: ' + sys.platform)
diff --git a/security/py-fido2/files/patch-fido2___pyu2f_freebsd.py b/security/py-fido2/files/patch-fido2___pyu2f_freebsd.py
deleted file mode 100644
index 75e395bff72d..000000000000
--- a/security/py-fido2/files/patch-fido2___pyu2f_freebsd.py
+++ /dev/null
@@ -1,63 +0,0 @@
-This was part of a pull request that has been merged upstream. Most likely
-this patch can be removed on the next release of python-fido2.
-
-See https://github.com/Yubico/python-fido2/pull/64 and
-https://github.com/Yubico/python-fido2/commit/19c86d5459931b8a76d1adc76420a8a1e0c0cf2e
-
---- fido2/_pyu2f/freebsd.py.orig 2019-09-12 11:35:02 UTC
-+++ fido2/_pyu2f/freebsd.py
-@@ -0,0 +1,54 @@
-+# Copyright 2016 Google Inc. All Rights Reserved.
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+# http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+# See the License for the specific language governing permissions and
-+# limitations under the License.
-+
-+"""Implements raw HID interface on FreeBSD using sysctl and device files."""
-+
-+from __future__ import absolute_import
-+
-+import os
-+import uhid_freebsd
-+
-+from . import linux
-+
-+
-+class FreeBSDHidDevice(linux.LinuxHidDevice):
-+ """Implementation of HID device for FreeBSD.
-+ """
-+
-+ @staticmethod
-+ def Enumerate():
-+ for dev in uhid_freebsd.enumerate():
-+ desc = linux.base.DeviceDescriptor()
-+ desc.path = dev["path"]
-+ desc.vendor_id = dev["vendor_id"]
-+ desc.product_id = dev["product_id"]
-+ desc.product_string = dev["product_desc"]
-+ fd = os.open(desc.path, os.O_RDONLY)
-+ linux.ParseReportDescriptor(
-+ uhid_freebsd.get_report_data(fd, 3), desc)
-+ os.close(fd)
-+ yield desc.ToPublicDict()
-+
-+ def __init__(self, path):
-+ linux.base.HidDevice.__init__(self, path)
-+ self.dev = os.open(path, os.O_RDWR)
-+ self.desc = linux.base.DeviceDescriptor()
-+ self.desc.path = path
-+ linux.ParseReportDescriptor(
-+ uhid_freebsd.get_report_data(self.dev, 3), self.desc)
-+
-+ def Write(self, packet):
-+ """See base class."""
-+ out = bytes(bytearray([0]*64 + packet)) # 64 zero bytes (report ID)
-+ os.write(self.dev, out)
diff --git a/security/py-fido2/files/patch-setup.py b/security/py-fido2/files/patch-setup.py
deleted file mode 100644
index ad1e154226bc..000000000000
--- a/security/py-fido2/files/patch-setup.py
+++ /dev/null
@@ -1,24 +0,0 @@
-This was part of a pull request that has been merged upstream. Most likely
-this patch can be removed on the next release of python-fido2.
-
-See https://github.com/Yubico/python-fido2/pull/64 and
-https://github.com/Yubico/python-fido2/commit/19c86d5459931b8a76d1adc76420a8a1e0c0cf2e
-
---- setup.py.orig 2019-06-17 10:59:34 UTC
-+++ setup.py
-@@ -48,13 +48,14 @@ setup(
- install_requires=[
- 'six',
- 'cryptography>=1.5',
-+ 'uhid-freebsd>=1.2.1;platform_system=="FreeBSD"',
- ],
- extras_require={
- ':python_version < "3.4"': ['enum34'],
- 'pcsc': ['pyscard']
- },
- test_suite='test',
-- tests_require=['mock>=1.0.1', 'pyfakefs>=3.4'],
-+ tests_require=['mock>=1.0.1', 'pyfakefs>=3.4;platform_system=="Linux"'],
- classifiers=[
- 'License :: OSI Approved :: BSD License',
- 'License :: OSI Approved :: Apache Software License',
diff --git a/security/py-fido2/files/patch-test___pyu2f_freebsd__test.py b/security/py-fido2/files/patch-test___pyu2f_freebsd__test.py
deleted file mode 100644
index 9b7f3eede538..000000000000
--- a/security/py-fido2/files/patch-test___pyu2f_freebsd__test.py
+++ /dev/null
@@ -1,131 +0,0 @@
-This was part of a pull request that has been merged upstream. Most likely
-this patch can be removed on the next release of python-fido2.
-
-See https://github.com/Yubico/python-fido2/pull/64 and
-https://github.com/Yubico/python-fido2/commit/19c86d5459931b8a76d1adc76420a8a1e0c0cf2e
-
---- test/_pyu2f/freebsd_test.py.orig 2019-09-13 11:01:05 UTC
-+++ test/_pyu2f/freebsd_test.py
-@@ -0,0 +1,122 @@
-+# Copyright 2016 Google Inc. All Rights Reserved.
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+# http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+# See the License for the specific language governing permissions and
-+# limitations under the License.
-+
-+"""Tests for _pyu2f.hid.freebsd."""
-+
-+import base64
-+import os
-+import sys
-+
-+import six
-+from six.moves import builtins
-+from mock import patch
-+
-+if sys.platform.startswith('freebsd'):
-+ from fido2._pyu2f import freebsd
-+
-+if sys.version_info[:2] < (2, 7):
-+ import unittest2 as unittest # pylint: disable=g-import-not-at-top
-+else:
-+ import unittest # pylint: disable=g-import-not-at-top
-+
-+
-+# These are base64 encoded report descriptors of a Yubico token
-+# and a Logitech keyboard.
-+YUBICO_RD = 'BtDxCQGhAQkgFQAm/wB1CJVAgQIJIRUAJv8AdQiVQJECwA=='
-+KEYBOARD_RD = (
-+ 'BQEJAqEBCQGhAAUJGQEpBRUAJQGVBXUBgQKVAXUDgQEFAQkwCTEJOBWBJX91CJUDgQbAwA==')
-+
-+
-+class FakeUhidFreeBSDModule():
-+ def enumerate(self):
-+ return [{'device': 'uhid0',
-+ 'path': '/dev/uhid0',
-+ 'vendor_id': 0x046d,
-+ 'product_id': 0xc31c,
-+ 'product_desc': 'Logitech Keyboard'},
-+ {'device': 'uhid1',
-+ 'path': '/dev/uhid1',
-+ 'vendor_id': 0x1050,
-+ 'product_id': 0x0407,
-+ 'product_desc': 'Yubico U2F'}]
-+
-+ def get_report_data(self, fd, unused_report_id):
-+ if fd:
-+ return base64.b64decode(YUBICO_RD)
-+ else:
-+ return base64.b64decode(KEYBOARD_RD)
-+
-+
-+class FakeOsModule():
-+ O_RDONLY = os.O_RDONLY
-+ O_RDWR = os.O_RDWR
-+ path = os.path
-+
-+ data_written = None
-+ data_to_return = None
-+
-+ def open(self, path, unused_opts): # pylint: disable=invalid-name
-+ if path.find('uhid1') >= 0:
-+ return 1 # fd == 1 => magic number to return Yubikey RD below
-+ else:
-+ return 0
-+
-+ def write(self, unused_dev, data): # pylint: disable=invalid-name
-+ self.data_written = data
-+
-+ def read(self, unused_dev, unused_length): # pylint: disable=invalid-name
-+ return self.data_to_return
-+
-+ def close(self, unused_dev): # pylint: disable=invalid-name
-+ pass
-+
-+
-+@unittest.skipIf(not sys.platform.startswith('freebsd'),
-+ 'FreeBSD specific test case')
-+class FreeBSDTest(unittest.TestCase):
-+ @patch('fido2._pyu2f.freebsd.os', FakeOsModule())
-+ @patch('fido2._pyu2f.freebsd.uhid_freebsd', FakeUhidFreeBSDModule())
-+ def testCallEnumerate(self):
-+ devs = list(freebsd.FreeBSDHidDevice.Enumerate())
-+ devs = sorted(devs, key=lambda k: k['vendor_id'])
-+
-+ self.assertEqual(len(devs), 2)
-+ self.assertEqual(devs[0]['vendor_id'], 0x046d)
-+ self.assertEqual(devs[0]['product_id'], 0xc31c)
-+ self.assertEqual(devs[1]['vendor_id'], 0x1050)
-+ self.assertEqual(devs[1]['product_id'], 0x0407)
-+ self.assertEqual(devs[1]['usage_page'], 0xf1d0)
-+ self.assertEqual(devs[1]['usage'], 1)
-+
-+ @patch('fido2._pyu2f.freebsd.uhid_freebsd', FakeUhidFreeBSDModule())
-+ def testCallOpen(self):
-+ fake_os = FakeOsModule()
-+ with patch('fido2._pyu2f.linux.os', fake_os):
-+ with patch('fido2._pyu2f.freebsd.os', fake_os):
-+ dev = freebsd.FreeBSDHidDevice('/dev/uhid1')
-+ self.assertEqual(dev.GetInReportDataLength(), 64)
-+ self.assertEqual(dev.GetOutReportDataLength(), 64)
-+
-+ dev.Write(list(range(0, 64)))
-+ # The HidDevice implementation prepends one zero-byte-packet
-+ # (64 bytes) representing the report ID + padding
-+ self.assertEqual(list(six.iterbytes(fake_os.data_written)),
-+ [0]*64 + list(range(0, 64)))
-+
-+ fake_os.data_to_return = b'x' * 64
-+ self.assertEqual(dev.Read(), [120] * 64) # chr(120) = 'x'
-+
-+
-+if __name__ == '__main__':
-+ unittest.main()
diff --git a/security/py-fido2/files/patch-test___pyu2f_linux__test.py b/security/py-fido2/files/patch-test___pyu2f_linux__test.py
deleted file mode 100644
index e7a5c85502cf..000000000000
--- a/security/py-fido2/files/patch-test___pyu2f_linux__test.py
+++ /dev/null
@@ -1,30 +0,0 @@
-This was part of a pull request that has been merged upstream. Most likely
-this patch can be removed on the next release of python-fido2.
-
-See https://github.com/Yubico/python-fido2/pull/64 and
-https://github.com/Yubico/python-fido2/commit/19c86d5459931b8a76d1adc76420a8a1e0c0cf2e
-
---- test/_pyu2f/linux_test.py.orig 2019-09-13 11:17:23 UTC
-+++ test/_pyu2f/linux_test.py
-@@ -27,7 +27,11 @@ from fido2._pyu2f import linux
- try:
- from pyfakefs import fake_filesystem # pylint: disable=g-import-not-at-top
- except ImportError:
-- from fakefs import fake_filesystem # pylint: disable=g-import-not-at-top
-+ try:
-+ from fakefs import fake_filesystem # pylint: disable=g-import-not-at-top
-+ except ImportError:
-+ if sys.platform.startswith('linux'):
-+ raise
-
- if sys.version_info[:2] < (2, 7):
- import unittest2 as unittest # pylint: disable=g-import-not-at-top
-@@ -71,6 +75,8 @@ class FakeDeviceOsModule(object):
- return self.data_to_return
-
-
-+@unittest.skipIf(not sys.platform.startswith('linux'),
-+ 'Linux specific test case')
- class LinuxTest(unittest.TestCase):
- def setUp(self):
- self.fs = fake_filesystem.FakeFilesystem()
diff --git a/security/py-fido2/files/patch-test___pyu2f_macos__test.py b/security/py-fido2/files/patch-test___pyu2f_macos__test.py
deleted file mode 100644
index 691c571f4aa2..000000000000
--- a/security/py-fido2/files/patch-test___pyu2f_macos__test.py
+++ /dev/null
@@ -1,17 +0,0 @@
-This was part of a pull request that has been merged upstream. Most likely
-this patch can be removed on the next release of python-fido2.
-
-See https://github.com/Yubico/python-fido2/pull/64 and
-https://github.com/Yubico/python-fido2/commit/19c86d5459931b8a76d1adc76420a8a1e0c0cf2e
-
---- test/_pyu2f/macos_test.py.orig 2018-07-04 13:27:36 UTC
-+++ test/_pyu2f/macos_test.py
-@@ -44,6 +44,8 @@ def init_mock_get_int_property(mock_get_int_property):
- mock_get_int_property.return_value = 64
-
-
-+@unittest.skipIf(not sys.platform.startswith('darwin'),
-+ 'MacOS specific test case')
- class MacOsTest(unittest.TestCase):
-
- @classmethod