@@ -1600,10 +1600,11 @@ bool makeLNURL()
1600
1600
1601
1601
float total = amountToShow.toFloat () * multipler;
1602
1602
1603
- unsigned char iv_init[16 ];
1604
- unsigned char iv[16 ];
1603
+ int iv_length = 16 ;
1604
+ unsigned char iv_init[iv_length];
1605
+ unsigned char iv[iv_length];
1605
1606
1606
- for (int i = 0 ; i < 16 ; i++) {
1607
+ for (int i = 0 ; i < iv_length ; i++) {
1607
1608
iv[i] = random (0 , 255 );
1608
1609
iv_init[i] = iv[i];
1609
1610
}
@@ -1618,36 +1619,23 @@ bool makeLNURL()
1618
1619
preparedURL = baseURLATM;
1619
1620
secret = secretATM;
1620
1621
}
1621
- preparedURL += " ?p=" ;
1622
1622
1623
1623
randomPin = random (1000 , 9999 );
1624
1624
String payload = String (randomPin) + String (" :" ) + String (total);
1625
1625
Serial.print (" payload: " );
1626
1626
Serial.println (payload);
1627
1627
size_t payload_len = payload.length ();
1628
1628
int padding = 16 - (payload_len % 16 );
1629
- unsigned char encrypted[payload_len + padding] = {0 };
1630
- String s = " " ;
1631
- encrypt (secret.c_str (), iv, payload_len + padding, payload.c_str (), encrypted);
1632
-
1633
- for (int i = 0 ; i < sizeof (encrypted); i++) {
1634
- s = String (encrypted[i], HEX);
1635
- if (s.length () == 1 ) {
1636
- s = " 0" + s;
1637
- }
1638
- preparedURL += s;
1639
- }
1640
- // append iv to the url
1629
+ payload_len += padding;
1630
+ unsigned char encrypted[payload_len] = {0 };
1631
+ encrypt (secret.c_str (), iv, payload_len, payload.c_str (), encrypted);
1632
+
1633
+ preparedURL += " ?p=" ;
1634
+ preparedURL += toBase64 (encrypted, payload_len, BASE64_URLSAFE | BASE64_NOPADDING);
1641
1635
preparedURL += " &iv=" ;
1642
- for (int i = 0 ; i < sizeof (iv_init); i++) {
1643
- s = String (iv_init[i], HEX);
1644
- if (s.length () == 1 ) {
1645
- s = " 0" + s;
1646
- }
1647
- preparedURL += s;
1648
- }
1649
- Serial.println ();
1636
+ preparedURL += toBase64 (iv_init, iv_length, BASE64_URLSAFE | BASE64_NOPADDING);
1650
1637
Serial.println (preparedURL);
1638
+
1651
1639
char Buf[200 ];
1652
1640
preparedURL.toCharArray (Buf, 200 );
1653
1641
char *url = Buf;
0 commit comments