1
1
package shutterservice
2
2
3
3
import (
4
- "bytes"
5
4
"context"
6
5
7
- "github.com/jackc/pgx/v4"
8
6
"github.com/jackc/pgx/v4/pgxpool"
9
7
pubsub "github.com/libp2p/go-libp2p-pubsub"
10
8
"github.com/pkg/errors"
@@ -105,32 +103,7 @@ func (i *MessagingMiddleware) interceptDecryptionKeyShares(
105
103
) (p2pmsg.Message , error ) {
106
104
queries := database .New (i .dbpool )
107
105
108
- currentDecryptionTrigger , err := queries .GetCurrentDecryptionTrigger (ctx , int64 (originalMsg .Eon ))
109
- if err == pgx .ErrNoRows {
110
- log .Warn ().
111
- Uint64 ("eon" , originalMsg .Eon ).
112
- Msg ("intercepted decryption key shares message with unknown corresponding decryption trigger" )
113
- return nil , nil
114
- } else if err != nil {
115
- return nil , errors .Wrapf (err , "failed to get current decryption trigger for eon %d" , originalMsg .Eon )
116
- }
117
- if originalMsg .Eon != uint64 (currentDecryptionTrigger .Eon ) {
118
- log .Warn ().
119
- Uint64 ("eon-got" , originalMsg .Eon ).
120
- Int64 ("eon-expected" , currentDecryptionTrigger .Eon ).
121
- Msg ("intercepted decryption key shares message with unexpected eon" )
122
- return nil , nil
123
- }
124
-
125
106
identitiesHash := computeIdentitiesHashFromShares (originalMsg .Shares )
126
- if ! bytes .Equal (identitiesHash , currentDecryptionTrigger .IdentitiesHash ) {
127
- log .Warn ().
128
- Uint64 ("eon" , originalMsg .Eon ).
129
- Hex ("expectedIdentitiesHash" , currentDecryptionTrigger .IdentitiesHash ).
130
- Hex ("actualIdentitiesHash" , identitiesHash ).
131
- Msg ("intercepted decryption key shares message with unexpected identities hash" )
132
- return nil , nil
133
- }
134
107
135
108
identityPreimages := []identitypreimage.IdentityPreimage {}
136
109
for _ , share := range originalMsg .Shares {
@@ -176,32 +149,23 @@ func (i *MessagingMiddleware) interceptDecryptionKeys(
176
149
ctx context.Context ,
177
150
originalMsg * p2pmsg.DecryptionKeys ,
178
151
) (p2pmsg.Message , error ) {
179
- // TODO: update flag in event table to notify the decryption is already done
180
152
if originalMsg .Extra != nil {
181
153
return originalMsg , nil
182
154
}
183
155
184
156
serviceDB := database .New (i .dbpool )
185
157
obsKeyperDB := obskeyperdatabase .New (i .dbpool )
186
- trigger , err := serviceDB .GetCurrentDecryptionTrigger (ctx , int64 (originalMsg .Eon ))
187
- if err == pgx .ErrNoRows {
188
- log .Warn ().
189
- Uint64 ("eon" , originalMsg .Eon ).
190
- Msg ("unknown decryption trigger for intercepted keys message" )
191
- return nil , nil
192
- }
193
- if err != nil {
194
- return nil , errors .Wrapf (err , "failed to get current decryption trigger for eon %d" , originalMsg .Eon )
195
- }
196
158
197
159
keyperSet , err := obsKeyperDB .GetKeyperSetByKeyperConfigIndex (ctx , int64 (originalMsg .Eon ))
198
160
if err != nil {
199
161
return nil , errors .Wrapf (err , "failed to get keyper set from database for eon %d" , originalMsg .Eon )
200
162
}
201
163
164
+ identitiesHash := computeIdentitiesHashFromKeys (originalMsg .GetKeys ())
165
+
202
166
signatures , err := serviceDB .GetDecryptionSignatures (ctx , database.GetDecryptionSignaturesParams {
203
167
Eon : int64 (originalMsg .Eon ),
204
- IdentitiesHash : trigger . IdentitiesHash ,
168
+ IdentitiesHash : identitiesHash ,
205
169
Limit : keyperSet .Threshold ,
206
170
})
207
171
if err != nil {
@@ -212,7 +176,7 @@ func (i *MessagingMiddleware) interceptDecryptionKeys(
212
176
if len (signatures ) < int (keyperSet .Threshold ) {
213
177
log .Debug ().
214
178
Uint64 ("eon" , originalMsg .Eon ).
215
- Hex ("identities-hash" , trigger . IdentitiesHash ).
179
+ Hex ("identities-hash" , identitiesHash ).
216
180
Int32 ("threshold" , keyperSet .Threshold ).
217
181
Int ("num-signatures" , len (signatures )).
218
182
Msg ("dropping intercepted keys message as signature count is not high enough yet" )
@@ -241,7 +205,7 @@ func (i *MessagingMiddleware) interceptDecryptionKeys(
241
205
242
206
log .Info ().
243
207
Uint64 ("eon" , originalMsg .Eon ).
244
- Hex ("identities-hash" , trigger . IdentitiesHash ).
208
+ Hex ("identities-hash" , identitiesHash ).
245
209
Int ("num-signatures" , len (signatures )).
246
210
Int ("num-keys" , len (msg .Keys )).
247
211
Msg ("sending keys" )
0 commit comments