1<!doctype html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width,initial-scale=1"> 6 <title>c2pa.sh · inspect Content Credentials</title> 7 <link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=897da00d11"> 8 <link rel="preload" as="font" type="font/woff2" crossorigin href="/static/fonts/v1/3b646991d30055a9/IBMPlexSans-Regular.woff2"> 9<link rel="preload" as="font" type="font/woff2" crossorigin href="/static/fonts/v1/8960851d691c054e/IBMPlexSans-SemiBold.woff2"> 10<link rel="preload" as="font" type="font/woff2" crossorigin href="/static/fonts/v1/08949f728dc52d52/IBMPlexMono-Regular.woff2"> 11<link rel="preload" as="font" type="font/woff2" crossorigin href="/static/fonts/v1/01d285447409c8a5/IBMPlexMono-Medium.woff2"> 12<link rel="stylesheet" href="/static/style.css?v=99400ca298"> 13 <meta property="og:title" content="c2pa.sh"> 14 <meta property="og:description" content="Inspect any C2PA-signed image: manifest, cert chain, OCSP/CRL/SCT, RFC 3161 timestamp."> 15 <meta property="og:type" content="website"> 16 <meta name="twitter:card" content="summary_large_image"> 17</head> 18<body> 19 <main> 20 <header class="topnav"> 21 <a href="/" class="brand"> 22 <span class="brand__mark" aria-hidden="true"><svg viewBox="0 0 20 20" width="18" height="18" fill="none"><circle cx="10" cy="10" r="8" stroke="currentColor" stroke-width="1.5"/><path d="M6.4 10.2l2.4 2.4 4.8-5.6" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 23 <span class="brand__wordmark">c2pa.sh</span> 24 <span class="brand__byline">by SSL.com</span> 25 </a> 26 <nav> 27 <a href="/recent">recent</a> 28 </nav> 29 </header> 30 31 <section class="hero"> 32 <h1>Inspect any C2PA-signed image.</h1> 33 <p class="lede">Who signed it, what made it, whether it's been edited since, and whether the signature actually checks out.</p> 34 </section> 35 36 <section class="console" aria-label="inspect or generate an image"> 37 <div class="console__block"> 38 <div class="console__label">inspect a file</div> 39 <div id="drop" class="drop"> 40 <input id="file" type="file" accept="image/*" hidden> 41 <label for="file" class="drop__bar"> 42 <span class="drop__caret" aria-hidden="true">></span> 43 <span class="drop__hint">drop an image, or click to pick</span> 44 <span class="drop__formats">png jpeg webp gif heic · 25mb</span> 45 </label> 46 </div> 47 <label class="recents-toggle"> 48 <input id="add-to-recents" type="checkbox" checked> 49 <span>list on public <code>/recent</code> <span class="recents-toggle__hint">(uncheck for an unlisted run; anyone with its full report link can view it). uploads keep their <abbr title="Camera, GPS, timestamp metadata embedded in most photos. Strip it locally before upload if you'd rather not share.">EXIF metadata</abbr>. Public uploads may be sent to OpenAI for a one-line caption when you don't supply a prompt.</span></span> 50 </label> 51 </div> 52 53 <form id="gen-form" class="console__block gen"> 54 <div class="console__label">or generate one</div> 55 <div class="gen__bar"> 56 <span class="gen__caret" aria-hidden="true">></span> 57 <input name="prompt" type="text" maxlength="4000" placeholder="describe an image, or leave blank for a random prompt"> 58 <button type="submit" class="btn-primary">generate & inspect</button> 59 </div> 60 <details class="gen__advanced"> 61 <summary>style override</summary> 62 <label><input name="style" type="text" placeholder="e.g. watercolor, photoreal, low-poly"></label> 63 </details> 64 </form> 65 </section> 66 67 <div id="status" class="status" hidden></div> 68 </main> 69
69<script src="/static/report-common.js?v=ac23ab31fa"></script>
69 70
70<script src="/static/app.js?v=2f90c6eec2" defer></script>
70 71<style> 72.build-footer{display:flex;justify-content:center;align-items:center;gap:.6em; 73 width:fit-content;max-width:calc(100% - 32px);margin:48px auto 28px;padding:6px 8px 6px 14px; 74 font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:inherit; 75 background:rgba(127,127,127,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px); 76 border:1px solid rgba(127,127,127,.2);border-radius:999px;position:relative;z-index:2; 77 flex-wrap:wrap;transition:border-color .15s} 78.build-footer:hover{border-color:rgba(63,182,139,.5)} 79.build-footer__dot{width:7px;height:7px;border-radius:50%;background:#3fb68b; 80 box-shadow:0 0 0 0 rgba(63,182,139,.6);animation:build-pulse 2.4s ease-out infinite} 81@keyframes build-pulse{70%{box-shadow:0 0 0 6px rgba(63,182,139,0)}100%{box-shadow:0 0 0 0 rgba(63,182,139,0)}} 82@media (prefers-reduced-motion:reduce){.build-footer__dot{animation:none}} 83footer.build-footer button.build-footer__sha{font:inherit;color:inherit;background:rgba(127,127,127,.16);border:0; 84 border-radius:6px;padding:2px 8px;cursor:copy;transition:background .15s} 85footer.build-footer button.build-footer__sha:hover{background:rgba(127,127,127,.28)} 86.build-footer__sha.is-copied::after{content:" copied";color:#3fb68b} 87</style><footer class="build-footer" data-sha="5eb821f" data-committed="2026-10-03T19:14:48-05:00" title="committed 2026-10-04 00:14 UTC"><span class="build-footer__dot" aria-hidden="true"></span><span>live</span><button type="button" class="build-footer__sha" aria-label="copy commit sha">5eb821f</button><span class="build-footer__ago" style="padding-right:6px">committed 2026-10-04 00:14 UTC</span></footer>
87<script src="/static/build-stamp.js?v=e3f0b2e017" defer></script>
87</body> 88</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.