Skip to content

Commit 687c009

Browse files
committed
SE050: Add serialNumber(byte sn[])
1 parent 103d4ab commit 687c009

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

Diff for: libraries/SE05X/src/SE05X.cpp

+20-5
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
#define SE05X_EC_SIGNATURE_HEADER_LENGTH 6
2727
#define SE05X_EC_SIGNATURE_DER_LENGTH SE05X_EC_SIGNATURE_HEADER_LENGTH + SE05X_EC_SIGNATURE_RAW_LENGTH
2828
#define SE05X_SHA256_LENGTH 32
29-
#define SE05X_SN_LENGTH 18
3029
#define SE05X_DER_BUFFER_SIZE 256
3130
#define SE05X_TEMP_OBJECT 9999
3231

@@ -158,17 +157,33 @@ int SE05XClass::readConfiguration(byte data[])
158157
return 1;
159158
}
160159

160+
int SE05XClass::serialNumber(byte sn[])
161+
{
162+
return serialNumber(sn, SE05X_SN_LENGTH);
163+
}
164+
165+
int SE05XClass::serialNumber(byte sn[], size_t length)
166+
{
167+
size_t uidLen = length;
168+
169+
sss_session_prop_get_au8(&_boot_ctx.session, kSSS_SessionProp_UID, sn, &uidLen);
170+
if (length != uidLen) {
171+
SE05X_PRINT_ERROR("Error in Se05x_API_ReadObject \n");
172+
return 0;
173+
}
174+
return 1;
175+
}
176+
161177
String SE05XClass::serialNumber()
162178
{
163179
String result = (char*)NULL;
164180
byte UID[SE05X_SN_LENGTH];
165-
size_t uidLen = 18;
166181

167-
sss_session_prop_get_au8(&_boot_ctx.session, kSSS_SessionProp_UID, UID, &uidLen);
182+
serialNumber(UID, sizeof(UID));
168183

169-
result.reserve(uidLen*2);
184+
result.reserve(SE05X_SN_LENGTH * 2);
170185

171-
for (int i = 0; i < uidLen; i++) {
186+
for (size_t i = 0; i < SE05X_SN_LENGTH; i++) {
172187
byte b = UID[i];
173188

174189
if (b < 16) {

Diff for: libraries/SE05X/src/SE05X.h

+4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
#define SE05X_PRINT_ERROR
3333
#endif
3434

35+
#define SE05X_SN_LENGTH 18
36+
3537
class SE05XClass
3638
{
3739
public:
@@ -41,6 +43,8 @@ class SE05XClass
4143
int begin();
4244
void end();
4345

46+
int serialNumber(byte sn[]);
47+
int serialNumber(byte sn[], size_t length);
4448
String serialNumber();
4549

4650
long random(long max);

0 commit comments

Comments
 (0)