<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenticate in Secure Authentication</title>
    <link>https://community.nxp.com/t5/Secure-Authentication/SE051C2-all-Secure-Object-operations-return-0x6985-while/m-p/2399763#M2114</link>
    <description>&lt;P&gt;## The problem in one line&lt;/P&gt;&lt;P&gt;On an **SE051C2**, every command that touches the applet's object store returns&lt;BR /&gt;**0x6985 (CONDITIONS NOT SATISFIED)** — while `GetRandom` succeeds on the *same*&lt;BR /&gt;session, including over the armed Platform SCP03 channel.&lt;/P&gt;&lt;P&gt;## Our questions&lt;/P&gt;&lt;P&gt;**Q1. Is this part in a "mandate platform SCP" / RESTRICTED / transport state?**&lt;BR /&gt;Both of our samples are as-delivered, and one is factory-fresh. If SE051C2 ships with&lt;BR /&gt;the object store locked until the Platform SCP03 keys are rotated off the NXP&lt;BR /&gt;defaults, that would explain every observation below exactly. If so, what is the&lt;BR /&gt;documented procedure to leave that state?&lt;/P&gt;&lt;P&gt;**Q2. Do object operations require customer-key (rotated) Platform SCP03, rather than&lt;BR /&gt;the default platform keys?** Our channel authenticates with the defaults and&lt;BR /&gt;demonstrably carries traffic — but every object command over it is refused.&lt;/P&gt;&lt;P&gt;**Q3. If Q1/Q2 are yes: how do we read UNIQUE_ID first?**&lt;BR /&gt;This is a chicken-and-egg that blocks us completely. Our platform-key derivation takes&lt;BR /&gt;the chip UID as its input, but `ReadObject(UNIQUE_ID)` is itself one of the refused&lt;BR /&gt;commands. What is the intended order of operations on a fresh part?&lt;/P&gt;&lt;P&gt;**Q4. Is there a GET DATA / GET STATUS we can issue that reports the applet's&lt;BR /&gt;lifecycle / VC state?** Stateless commands *do* work for us, so if such a query exists&lt;BR /&gt;we can confirm the part's state ourselves instead of guessing.&lt;/P&gt;&lt;P&gt;**Q5. What makes THIS part refuse ordinary object creation, when it evidently works&lt;BR /&gt;for others?** In the DeleteAll/0x6985 thread (m-p/1648349), step 1 was&lt;BR /&gt;`Se05x_API_WriteUserID(... FACTORY_RESET ...)` returning **0x9000** — a&lt;BR /&gt;WriteSecureObject succeeding on the default session with only platform SCP03. That is&lt;BR /&gt;precisely the class of command that fails for us. So object writes are *not* inherently&lt;BR /&gt;session-gated. Is the difference the variant/configuration (SE051C2 vs SE050), or the&lt;BR /&gt;platform keys still being NXP defaults?&lt;/P&gt;&lt;P&gt;**Q6. Is m-p/1716555 the same root cause?** There, another user reports&lt;BR /&gt;`Se05x_API_WriteUserID` returning `SM_ERR_CONDITIONS_OF_USE_NOT_SATISFIED` — our exact&lt;BR /&gt;symptom — and that question appears to have gone unanswered.&lt;/P&gt;&lt;P&gt;**Q7. Does `kSE05x_ECCurve_NIST_P256` require an explicit `Se05x_API_CreateECCurve` on&lt;BR /&gt;SE051C2, or is it built in?** (Minor — but we tried it, and even the CreateECCurve is&lt;BR /&gt;refused.)&lt;/P&gt;&lt;P&gt;## What we measured&lt;/P&gt;&lt;P&gt;| Check | Result | Meaning |&lt;BR /&gt;|---|---|---|&lt;BR /&gt;| `Se05x_API_SELECT` applet | **0x9000** | IoT applet selected |&lt;BR /&gt;| `Se05x_API_GetRandom` (plain) | real entropy | session + transport work |&lt;BR /&gt;| Platform SCP03 authenticate | **succeeds** | default key set matched |&lt;BR /&gt;| **GetRandom OVER the SCP03 channel** | **succeeds, real entropy** | encrypt + C-MAC + decrypt verified |&lt;BR /&gt;| Second wrapped command back-to-back | **succeeds** | command counter stays in sync |&lt;BR /&gt;| `WriteECKey` NIST P-256 (generate) | **0x6985** | |&lt;BR /&gt;| `WriteECKey` secp256k1 (import) | **0x6985** | `CreateCurve_secp256k1` IS called first |&lt;BR /&gt;| `WriteECKey` Ed25519 (import) | **0x6985** | built-in curve, no CreateCurve needed |&lt;BR /&gt;| `ReadObject(UNIQUE_ID)` | **0x6985** | no policy argument involved |&lt;BR /&gt;| `WriteBinary_Ver` (with file policy) | **0x6985** | file objects fail too |&lt;BR /&gt;| `CreateECCurve(NIST_P256)` | **0x6985** | even creating a curve is refused |&lt;BR /&gt;| `CheckObjectExists` | **0x6985** | cannot even test for an object |&lt;/P&gt;&lt;P&gt;**`GetRandom` is the only command that works.** Every object-store operation returns&lt;BR /&gt;0x6985 — on both samples, plain or SCP03-wrapped.&lt;/P&gt;&lt;P&gt;## Already ruled out by experiment&lt;/P&gt;&lt;P&gt;1. **Not the part.** A second, factory-fresh SE051C2 behaves identically.&lt;BR /&gt;2. **Not the transport or session.** SELECT returns 0x9000; GetRandom returns real&lt;BR /&gt;entropy on the same session.&lt;BR /&gt;3. **Not a broken or missing Platform SCP03 channel.** Authenticate succeeds against&lt;BR /&gt;the default key set and — decisively — a `GetRandom` issued **over the armed&lt;BR /&gt;channel** returns real entropy, as does a second back-to-back (command counter in&lt;BR /&gt;sync). Encrypt + C-MAC + response decrypt all verified. The failing object commands&lt;BR /&gt;are carried by a channel we have proven functional.&lt;BR /&gt;4. **Not a missing key policy.** We passed a real `Se05xPolicy_t`&lt;BR /&gt;(`ALLOW_SIGN|VERIFY|KA|READ|WRITE|GEN`, authID 0) to every `WriteECKey`. No change.&lt;BR /&gt;(It could not explain the UNIQUE_ID read anyway — `ReadObject` takes no policy.)&lt;BR /&gt;5. **Not a missing curve.** `CreateCurve_secp256k1` is called before the secp256k1&lt;BR /&gt;import, Ed25519 is built in, and `Se05x_API_CreateECCurve(NIST_P256)` **also**&lt;BR /&gt;returns 0x6985.&lt;BR /&gt;6. **Not command ordering.** Same 0x6985 whether issued on the plain session or on the&lt;BR /&gt;authenticated SCP03 channel.&lt;BR /&gt;7. **Not the middleware auth build configuration.** Rebuilt with&lt;BR /&gt;`SSS_HAVE_SE05X_AUTH_PLATFSCP03=1`, `SSS_HAVE_SE05X_AUTH_NONE=0` and&lt;BR /&gt;`SSSFTR_SE05X_AuthSession=1` (they had been NONE / 0). No change.&lt;/P&gt;&lt;P&gt;## Environment&lt;/P&gt;&lt;P&gt;* Part: **SE051C2** — two samples, one factory-fresh, identical behaviour&lt;BR /&gt;* Host: STM32L562, bare-metal, TrustZone secure world, I2C1 @ 100 kHz, T=1&lt;BR /&gt;* Middleware: vendored NXP Plug &amp;amp; Trust `Se05x_API_*` over a custom&lt;BR /&gt;`smCom_TransceiveRaw` transport (our own T=1 framing — SELECT and GetRandom prove&lt;BR /&gt;it works). Full middleware, **not** nano-package.&lt;BR /&gt;* Platform SCP03: NXP default keys; authenticate succeeds and carries traffic&lt;/P&gt;</description>
    <pubDate>Tue, 28 Jul 2026 22:49:55 GMT</pubDate>
    <dc:creator>winetime</dc:creator>
    <dc:date>2026-07-28T22:49:55Z</dc:date>
    <item>
      <title>SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenticate</title>
      <link>https://community.nxp.com/t5/Secure-Authentication/SE051C2-all-Secure-Object-operations-return-0x6985-while/m-p/2399763#M2114</link>
      <description>&lt;P&gt;## The problem in one line&lt;/P&gt;&lt;P&gt;On an **SE051C2**, every command that touches the applet's object store returns&lt;BR /&gt;**0x6985 (CONDITIONS NOT SATISFIED)** — while `GetRandom` succeeds on the *same*&lt;BR /&gt;session, including over the armed Platform SCP03 channel.&lt;/P&gt;&lt;P&gt;## Our questions&lt;/P&gt;&lt;P&gt;**Q1. Is this part in a "mandate platform SCP" / RESTRICTED / transport state?**&lt;BR /&gt;Both of our samples are as-delivered, and one is factory-fresh. If SE051C2 ships with&lt;BR /&gt;the object store locked until the Platform SCP03 keys are rotated off the NXP&lt;BR /&gt;defaults, that would explain every observation below exactly. If so, what is the&lt;BR /&gt;documented procedure to leave that state?&lt;/P&gt;&lt;P&gt;**Q2. Do object operations require customer-key (rotated) Platform SCP03, rather than&lt;BR /&gt;the default platform keys?** Our channel authenticates with the defaults and&lt;BR /&gt;demonstrably carries traffic — but every object command over it is refused.&lt;/P&gt;&lt;P&gt;**Q3. If Q1/Q2 are yes: how do we read UNIQUE_ID first?**&lt;BR /&gt;This is a chicken-and-egg that blocks us completely. Our platform-key derivation takes&lt;BR /&gt;the chip UID as its input, but `ReadObject(UNIQUE_ID)` is itself one of the refused&lt;BR /&gt;commands. What is the intended order of operations on a fresh part?&lt;/P&gt;&lt;P&gt;**Q4. Is there a GET DATA / GET STATUS we can issue that reports the applet's&lt;BR /&gt;lifecycle / VC state?** Stateless commands *do* work for us, so if such a query exists&lt;BR /&gt;we can confirm the part's state ourselves instead of guessing.&lt;/P&gt;&lt;P&gt;**Q5. What makes THIS part refuse ordinary object creation, when it evidently works&lt;BR /&gt;for others?** In the DeleteAll/0x6985 thread (m-p/1648349), step 1 was&lt;BR /&gt;`Se05x_API_WriteUserID(... FACTORY_RESET ...)` returning **0x9000** — a&lt;BR /&gt;WriteSecureObject succeeding on the default session with only platform SCP03. That is&lt;BR /&gt;precisely the class of command that fails for us. So object writes are *not* inherently&lt;BR /&gt;session-gated. Is the difference the variant/configuration (SE051C2 vs SE050), or the&lt;BR /&gt;platform keys still being NXP defaults?&lt;/P&gt;&lt;P&gt;**Q6. Is m-p/1716555 the same root cause?** There, another user reports&lt;BR /&gt;`Se05x_API_WriteUserID` returning `SM_ERR_CONDITIONS_OF_USE_NOT_SATISFIED` — our exact&lt;BR /&gt;symptom — and that question appears to have gone unanswered.&lt;/P&gt;&lt;P&gt;**Q7. Does `kSE05x_ECCurve_NIST_P256` require an explicit `Se05x_API_CreateECCurve` on&lt;BR /&gt;SE051C2, or is it built in?** (Minor — but we tried it, and even the CreateECCurve is&lt;BR /&gt;refused.)&lt;/P&gt;&lt;P&gt;## What we measured&lt;/P&gt;&lt;P&gt;| Check | Result | Meaning |&lt;BR /&gt;|---|---|---|&lt;BR /&gt;| `Se05x_API_SELECT` applet | **0x9000** | IoT applet selected |&lt;BR /&gt;| `Se05x_API_GetRandom` (plain) | real entropy | session + transport work |&lt;BR /&gt;| Platform SCP03 authenticate | **succeeds** | default key set matched |&lt;BR /&gt;| **GetRandom OVER the SCP03 channel** | **succeeds, real entropy** | encrypt + C-MAC + decrypt verified |&lt;BR /&gt;| Second wrapped command back-to-back | **succeeds** | command counter stays in sync |&lt;BR /&gt;| `WriteECKey` NIST P-256 (generate) | **0x6985** | |&lt;BR /&gt;| `WriteECKey` secp256k1 (import) | **0x6985** | `CreateCurve_secp256k1` IS called first |&lt;BR /&gt;| `WriteECKey` Ed25519 (import) | **0x6985** | built-in curve, no CreateCurve needed |&lt;BR /&gt;| `ReadObject(UNIQUE_ID)` | **0x6985** | no policy argument involved |&lt;BR /&gt;| `WriteBinary_Ver` (with file policy) | **0x6985** | file objects fail too |&lt;BR /&gt;| `CreateECCurve(NIST_P256)` | **0x6985** | even creating a curve is refused |&lt;BR /&gt;| `CheckObjectExists` | **0x6985** | cannot even test for an object |&lt;/P&gt;&lt;P&gt;**`GetRandom` is the only command that works.** Every object-store operation returns&lt;BR /&gt;0x6985 — on both samples, plain or SCP03-wrapped.&lt;/P&gt;&lt;P&gt;## Already ruled out by experiment&lt;/P&gt;&lt;P&gt;1. **Not the part.** A second, factory-fresh SE051C2 behaves identically.&lt;BR /&gt;2. **Not the transport or session.** SELECT returns 0x9000; GetRandom returns real&lt;BR /&gt;entropy on the same session.&lt;BR /&gt;3. **Not a broken or missing Platform SCP03 channel.** Authenticate succeeds against&lt;BR /&gt;the default key set and — decisively — a `GetRandom` issued **over the armed&lt;BR /&gt;channel** returns real entropy, as does a second back-to-back (command counter in&lt;BR /&gt;sync). Encrypt + C-MAC + response decrypt all verified. The failing object commands&lt;BR /&gt;are carried by a channel we have proven functional.&lt;BR /&gt;4. **Not a missing key policy.** We passed a real `Se05xPolicy_t`&lt;BR /&gt;(`ALLOW_SIGN|VERIFY|KA|READ|WRITE|GEN`, authID 0) to every `WriteECKey`. No change.&lt;BR /&gt;(It could not explain the UNIQUE_ID read anyway — `ReadObject` takes no policy.)&lt;BR /&gt;5. **Not a missing curve.** `CreateCurve_secp256k1` is called before the secp256k1&lt;BR /&gt;import, Ed25519 is built in, and `Se05x_API_CreateECCurve(NIST_P256)` **also**&lt;BR /&gt;returns 0x6985.&lt;BR /&gt;6. **Not command ordering.** Same 0x6985 whether issued on the plain session or on the&lt;BR /&gt;authenticated SCP03 channel.&lt;BR /&gt;7. **Not the middleware auth build configuration.** Rebuilt with&lt;BR /&gt;`SSS_HAVE_SE05X_AUTH_PLATFSCP03=1`, `SSS_HAVE_SE05X_AUTH_NONE=0` and&lt;BR /&gt;`SSSFTR_SE05X_AuthSession=1` (they had been NONE / 0). No change.&lt;/P&gt;&lt;P&gt;## Environment&lt;/P&gt;&lt;P&gt;* Part: **SE051C2** — two samples, one factory-fresh, identical behaviour&lt;BR /&gt;* Host: STM32L562, bare-metal, TrustZone secure world, I2C1 @ 100 kHz, T=1&lt;BR /&gt;* Middleware: vendored NXP Plug &amp;amp; Trust `Se05x_API_*` over a custom&lt;BR /&gt;`smCom_TransceiveRaw` transport (our own T=1 framing — SELECT and GetRandom prove&lt;BR /&gt;it works). Full middleware, **not** nano-package.&lt;BR /&gt;* Platform SCP03: NXP default keys; authenticate succeeds and carries traffic&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jul 2026 22:49:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Secure-Authentication/SE051C2-all-Secure-Object-operations-return-0x6985-while/m-p/2399763#M2114</guid>
      <dc:creator>winetime</dc:creator>
      <dc:date>2026-07-28T22:49:55Z</dc:date>
    </item>
    <item>
      <title>Re: SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenti</title>
      <link>https://community.nxp.com/t5/Secure-Authentication/SE051C2-all-Secure-Object-operations-return-0x6985-while/m-p/2399956#M2117</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/265110"&gt;@winetime&lt;/a&gt;&amp;nbsp;，&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Did you try the same process without platformSCP enabled? SE051C doesn't require a &lt;SPAN&gt;mandate platform SCP by default. If you may share the APDU command log for this issue, we may check it further.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have a great day,&lt;BR /&gt;Kan&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;BR /&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;</description>
      <pubDate>Wed, 29 Jul 2026 10:22:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Secure-Authentication/SE051C2-all-Secure-Object-operations-return-0x6985-while/m-p/2399956#M2117</guid>
      <dc:creator>Kan_Li</dc:creator>
      <dc:date>2026-07-29T10:22:33Z</dc:date>
    </item>
    <item>
      <title>Re: SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenti</title>
      <link>https://community.nxp.com/t5/Secure-Authentication/SE051C2-all-Secure-Object-operations-return-0x6985-while/m-p/2400661#M2121</link>
      <description>&lt;DIV&gt;&lt;SPAN&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/59276"&gt;@Kan_Li&lt;/a&gt;&amp;nbsp; — closing this out. **It was our side, and the diagnosis was wrong from the&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;start.** Posting the resolution in case it helps someone else.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;The part is fine. Once I instrumented a whole-boot APDU trace instead of reading&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;individual results, a clean power-up gave 83 APDUs with 80 of them 0x9000 — object&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;creation, secp256k1 key generation, &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;ReadObject&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; and ECDSA signing all working. The only&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;non-0x9000 responses were benign and already handled by our own code:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;80 01 0B 04 CreateECCurve(secp256k1) -&amp;gt; 6985 curve already exists&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;80 01 61 00 WriteECKey -&amp;gt; 6A80 object exists, wrong type&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;80 04 00 27 CheckObjectExists -&amp;gt; 9000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;80 04 00 28 DeleteSecureObject -&amp;gt; 9000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;80 01 61 00 WriteECKey -&amp;gt; 9000 succeeds after the delete&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;What I was actually looking at.&lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt; The SE was already in a wedged state when each of my&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;test boots started, left there by an earlier session. Once wedged, &lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;every&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt; APDU returns&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;0x6985 — &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;GetRandom&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;GetVersion&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;GetFreeMemory&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; included — and the state survives an&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MCU reset, a T=1 interface reset, and a re-&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;SELECT&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; that itself returns 0x9000. Only&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;removing power clears it. So every measurement I reported was of the wedge, not of a&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;blocked feature, and my "GetRandom is the only command that works" and "GetVersion is&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;refused" claims were both artifacts of that. Apologies for the noise.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;For the record, on a healthy boot this part reports:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt; `&lt;/SPAN&gt;&lt;SPAN&gt;GetVersion&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; → &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;07 02 00 3F FF FF FF&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; — applet &lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;7.2.0&lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;, AppletConfig &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;0x3FFF&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt; `&lt;/SPAN&gt;&lt;SPAN&gt;GetFreeMemory(PERSISTENT)&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; → &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;0x3E0C&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;15,884 bytes&lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt; free&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt; Platform SCP03 authenticates on the default key set for &lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;OEF 0005A8FA (SE051C)&lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;One thing that may still be worth your comment&lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;, since it is the part I do not&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;understand and it has shipping implications for us:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;While wedged, GP security-domain commands keep working — &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;80 50 00 00&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; INITIALIZE&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;UPDATE and &lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;84 82 33 00&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt; EXTERNAL AUTHENTICATE both return 0x9000 — while the IoT&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;applet refuses everything. Is there a documented applet error state with that shape,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;and is there any way to detect or clear it &lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;without cutting power&lt;/SPAN&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;SPAN&gt;? A deployed device&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;cannot power-cycle its secure element independently, so if a host can drive the applet&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;into this state we need to know how to get back out.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Thanks for the quick response earlier.&lt;/SPAN&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 31 Jul 2026 00:17:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Secure-Authentication/SE051C2-all-Secure-Object-operations-return-0x6985-while/m-p/2400661#M2121</guid>
      <dc:creator>winetime</dc:creator>
      <dc:date>2026-07-31T00:17:03Z</dc:date>
    </item>
  </channel>
</rss>

