Adds in-tree SerializationSink/Source interfaces matching the shape of the AMD-H Element API, plus writeTo/readFrom on CredentialStore and a round-trip test. The AMD-H adapter (added in a later epic) just bridges Element -> these interfaces, so the field layout is testable today without depending on a JCOP 4.5 image. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 lines
1002 B
Java
24 lines
1002 B
Java
package com.dangerousthings.aliro;
|
|
|
|
/**
|
|
* Minimal write-side abstraction matching the shape of the GlobalPlatform
|
|
* Amendment H {@code org.globalplatform.upgrade.Element} write API. The
|
|
* AMD-H adapter (added in a later epic, J3R452-only) is a one-class bridge
|
|
* that implements this interface against the real {@code Element}.
|
|
*
|
|
* <p>Keeping the interface in the main source tree means
|
|
* {@link CredentialStore#writeTo(SerializationSink)} can be authored,
|
|
* tested, and locked down today without pulling in the AMD-H package, which
|
|
* only exists on JCOP 4.5 / J3R452-class cards.
|
|
*
|
|
* <p>Element semantics: once a byte[] reference is written, the storage
|
|
* provider treats it as immutable from the caller's perspective. Test
|
|
* fakes that buffer writes should make defensive copies to mirror this.
|
|
*/
|
|
interface SerializationSink {
|
|
SerializationSink write(byte b);
|
|
SerializationSink write(short s);
|
|
SerializationSink write(boolean z);
|
|
SerializationSink write(byte[] arr);
|
|
}
|