Skip to content

Commit e74f566

Browse files
authored
Merge pull request #59 from contentauth/gpeacock/callbacksigner
fix: Export CallbackSigner
2 parents 1bc4e96 + ae2e801 commit e74f566

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

c2pa/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
# each license.
1313

1414
from .c2pa_api import Reader, Builder, create_signer, create_remote_signer, sign_ps256
15-
from .c2pa import Error, SigningAlg, sdk_version, version
15+
from .c2pa import Error, SigningAlg, CallbackSigner, sdk_version, version
1616

17-
__all__ = ['Reader', 'Builder', 'create_signer', 'sign_ps256', 'Error', 'SigningAlg', 'sdk_version', 'version', 'create_remote_signer']
17+
__all__ = ['Reader', 'Builder', 'CallbackSigner', 'create_signer', 'sign_ps256', 'Error', 'SigningAlg', 'sdk_version', 'version', 'create_remote_signer']

c2pa/c2pa_api/c2pa_api.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ def add_ingredient(self, ingredient, format, stream):
114114

115115
def add_ingredient_file(self, ingredient, path):
116116
format = os.path.splitext(path)[1][1:]
117+
if "title" not in ingredient:
118+
if isinstance(ingredient, str):
119+
ingredient = json.loads(ingredient)
120+
ingredient["title"] = os.path.basename(path)
117121
with open(path, "rb") as file:
118122
return self.add_ingredient(ingredient, format, file)
119123

tests/test_api.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,21 @@ def getitem(d, key):
5151
]
5252
}
5353

54+
ingredient_def = {
55+
"relationship": "parentOf",
56+
"thumbnail": {
57+
"identifier": "A.jpg",
58+
"format": "image/jpeg"
59+
}
60+
}
61+
5462
def test_v2_read_cloud_manifest():
5563
reader = Reader.from_file("tests/fixtures/cloud.jpg")
5664
manifest = reader.get_active_manifest()
5765
assert manifest is not None
5866

5967
def test_version():
60-
assert version() == "0.5.3"
68+
assert version() == "0.6.0"
6169

6270
def test_sdk_version():
6371
assert "c2pa-rs/" in sdk_version()
@@ -108,6 +116,8 @@ def sign(data: bytes) -> bytes:
108116
signer = create_signer(sign, SigningAlg.PS256, certs, "http://timestamp.digicert.com")
109117

110118
builder = Builder(manifest_def)
119+
120+
builder.add_ingredient_file(ingredient_def, data_dir + "A.jpg")
111121

112122
builder.add_resource_file("A.jpg", data_dir + "A.jpg")
113123

@@ -132,6 +142,8 @@ def sign(data: bytes) -> bytes:
132142
assert manifest,["format"] == "image/jpeg"
133143
# There should be no validation status errors
134144
assert manifest.get("validation_status") == None
145+
assert manifest["ingredients"][0]["relationship"] == "parentOf"
146+
assert manifest["ingredients"][0]["title"] == "A.jpg"
135147
except Exception as e:
136148
print("Failed to sign manifest store: " + str(e))
137149
exit(1)

tests/test_unit_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
class TestC2paSdk(unittest.TestCase):
2727
def test_version(self):
28-
self.assertIn("0.5.3", sdk_version())
28+
self.assertIn("0.6.0", sdk_version())
2929

3030

3131
class TestReader(unittest.TestCase):

0 commit comments

Comments
 (0)