diff --git a/tests/test_fernet.py b/tests/test_fernet.py
index 36e8729..438dc09 100644
--- a/tests/test_fernet.py
+++ b/tests/test_fernet.py
@@ -16,7 +16,6 @@
 import base64
 import calendar
 import json
-import os
 import time
 
 import iso8601
@@ -30,10 +29,10 @@
 from cryptography.hazmat.primitives.ciphers import algorithms, modes
 
 
-def json_parametrize(keys, fname):
-    path = os.path.join(os.path.dirname(__file__), "vectors", "fernet", fname)
-    with open(path) as f:
-        data = json.load(f)
+def json_parametrize(keys, filename):
+    from cryptography import vectors
+    vector_file = vectors.open_vector_file('fernet', filename)
+    data = json.load(vector_file)
     return pytest.mark.parametrize(keys, [
         tuple([entry[k] for k in keys])
         for entry in data
diff --git a/tests/utils.py b/tests/utils.py
index 79996b6..226d64f 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -14,12 +14,11 @@
 from __future__ import absolute_import, division, print_function
 
 import collections
-import os
-
-import pytest
 
 import six
 
+import pytest
+
 
 HashVector = collections.namedtuple("HashVector", ["message", "digest"])
 KeyedHashVector = collections.namedtuple(
@@ -67,11 +66,9 @@
 
 
 def load_vectors_from_file(filename, loader):
-    base = os.path.join(
-        os.path.dirname(__file__), "hazmat", "primitives", "vectors",
-    )
-    with open(os.path.join(base, filename), "r") as vector_file:
-        return loader(vector_file)
+    from cryptography import vectors
+    vector_file = vectors.open_vector_file('hazmat', 'primitives', filename)
+    return loader(vector_file)
 
 
 def load_nist_vectors(vector_data):
