fix an error in sqlite storage

Change-Id: I911a6230745aaa5b6a8189c3c8131cabb78f2295
diff --git a/src/detail/ca-sqlite.cpp b/src/detail/ca-sqlite.cpp
index 6abedee..1cddfed 100644
--- a/src/detail/ca-sqlite.cpp
+++ b/src/detail/ca-sqlite.cpp
@@ -137,14 +137,15 @@
 
   if (statement.step() == SQLITE_ROW) {
     RequestState state;
+    state.requestId = requestId;
     state.caPrefix = Name(statement.getBlock(1));
     state.status = static_cast<Status>(statement.getInt(2));
     state.cert = security::Certificate(statement.getBlock(4));
     state.challengeType = statement.getString(5);
     state.requestType = static_cast<RequestType>(statement.getInt(10));
     std::memcpy(state.encryptionKey.data(), statement.getBlob(11), statement.getSize(11));
-    state.encryptionIv.assign(statement.getBlob(12), statement.getBlob(12) + statement.getSize(12));
-    state.decryptionIv.assign(statement.getBlob(13), statement.getBlob(13) + statement.getSize(13));
+    state.encryptionIv = std::vector<uint8_t>(statement.getBlob(12), statement.getBlob(12) + statement.getSize(12));
+    state.decryptionIv = std::vector<uint8_t>(statement.getBlob(13), statement.getBlob(13) + statement.getSize(13));
     if (state.challengeType != "") {
       ChallengeState challengeState(statement.getString(3), time::fromIsoString(statement.getString(7)),
                                     statement.getInt(8), time::seconds(statement.getInt(9)),
@@ -179,8 +180,7 @@
   if (request.challengeState) {
     statement.bind(6, request.challengeType, SQLITE_TRANSIENT);
     statement.bind(7, request.challengeState->challengeStatus, SQLITE_TRANSIENT);
-    statement.bind(8, convertJson2String(request.challengeState->secrets),
-                   SQLITE_TRANSIENT);
+    statement.bind(8, convertJson2String(request.challengeState->secrets), SQLITE_TRANSIENT);
     statement.bind(9, time::toIsoString(request.challengeState->timestamp), SQLITE_TRANSIENT);
     statement.bind(10, request.challengeState->remainingTries);
     statement.bind(11, request.challengeState->remainingTime.count());
@@ -241,8 +241,8 @@
     state.cert = security::Certificate(statement.getBlock(5));
     state.requestType = static_cast<RequestType>(statement.getInt(11));
     std::memcpy(state.encryptionKey.data(), statement.getBlob(12), statement.getSize(12));
-    state.encryptionIv.assign(statement.getBlob(13), statement.getBlob(13) + statement.getSize(13));
-    state.decryptionIv.assign(statement.getBlob(14), statement.getBlob(14) + statement.getSize(14));
+    state.encryptionIv = std::vector<uint8_t>(statement.getBlob(13), statement.getBlob(13) + statement.getSize(13));
+    state.decryptionIv = std::vector<uint8_t>(statement.getBlob(14), statement.getBlob(14) + statement.getSize(14));
     if (state.challengeType != "") {
       ChallengeState challengeState(statement.getString(4), time::fromIsoString(statement.getString(8)),
                                     statement.getInt(9), time::seconds(statement.getInt(10)),
@@ -262,7 +262,7 @@
                              R"_SQLTEXT_(SELECT id, request_id, ca_name, status,
                              challenge_status, cert_request, challenge_type, challenge_secrets,
                              challenge_tp, remaining_tries, remaining_time, request_type,
-                             encryption_key, aes_block_counter
+                             encryption_key, encryption_iv, decryption_iv
                              FROM RequestStates WHERE ca_name = ?)_SQLTEXT_");
   statement.bind(1, caName.wireEncode(), SQLITE_TRANSIENT);
 
@@ -275,8 +275,8 @@
     state.cert = security::Certificate(statement.getBlock(5));
     state.requestType = static_cast<RequestType>(statement.getInt(11));
     std::memcpy(state.encryptionKey.data(), statement.getBlob(12), statement.getSize(12));
-    state.encryptionIv.assign(statement.getBlob(13), statement.getBlob(13) + statement.getSize(13));
-    state.decryptionIv.assign(statement.getBlob(14), statement.getBlob(14) + statement.getSize(14));
+    state.encryptionIv = std::vector<uint8_t>(statement.getBlob(13), statement.getBlob(13) + statement.getSize(13));
+    state.decryptionIv = std::vector<uint8_t>(statement.getBlob(14), statement.getBlob(14) + statement.getSize(14));
     if (state.challengeType != "") {
       ChallengeState challengeState(statement.getString(4), time::fromIsoString(statement.getString(8)),
                                     statement.getInt(9), time::seconds(statement.getInt(10)),