1
0
Fork 0

🚧 Added some Decrypt methods

This commit is contained in:
Maxim Lebedev 2018-10-15 19:36:02 +05:00
parent 50470c6e94
commit 1e511a11bc
No known key found for this signature in database
GPG Key ID: F8978F46FF0FFA4F
1 changed files with 108 additions and 29 deletions

View File

@ -21,47 +21,126 @@ func (epe *EncryptedPassportElement) DecryptPersonalDetails(sv *SecureValue) (*P
return &pd, err
}
func (epe *EncryptedPassportElement) DecryptPassport(sv *SecureValue, b *Bot) (*Passport, error) {
func (epe *EncryptedPassportElement) DecryptPassport(sv *SecureValue, b *Bot) (*IdDocumentData, []byte, []byte, [][]byte, error) {
if !epe.IsPassport() || !sv.HasData() || !sv.HasFrontSide() {
return nil, nil
return nil, nil, nil, nil, nil
}
/*
var p Passport
body, err := sv.Data.decrypt(epe.Data)
if err != nil {
return nil, nil, nil, nil, err
}
body, err := sv.Data.decrypt(epe.Data)
if err != nil {
return nil, err
var idd IdDocumentData
if err = json.Unmarshal(body, &idd); err != nil {
return nil, nil, nil, nil, err
}
fs, err := b.DecryptFile(epe.FrontSide, sv.FrontSide)
if err != nil {
return &idd, nil, nil, nil, err
}
var s []byte
if sv.HasSelfie() {
if s, err = b.DecryptFile(epe.Selfie, sv.Selfie); err != nil {
return &idd, fs, nil, nil, err
}
}
if err = json.Unmarshal(body, &p.Data); err != nil {
return nil, err
}
p.FrontSide, err = b.DecryptPassportFile(epe.FrontSide, sv.FrontSide)
if err != nil {
return nil, err
}
if sv.HasSelfie() {
p.Selfie, err = b.DecryptPassportFile(epe.Selfie, sv.Selfie)
if err != nil {
return nil, err
t := make([][]byte, len(sv.Translation))
if sv.HasTranslation() {
for i := range t {
if t[i], err = b.DecryptFile(&epe.Translation[i], &sv.Translation[i]); err != nil {
return &idd, fs, s, nil, err
}
}
}
if sv.HasTranslation() {
p.Translation = make([][]byte, len(sv.Translation))
for i := range sv.Translation {
p.Translation[i], err = b.DecryptPassportFile(epe.Translation[i], sv.Translation[i])
if err != nil {
return nil, err
}
return &idd, fs, s, t, nil
}
func (epe *EncryptedPassportElement) DecryptInternalPassport(sv *SecureValue, b *Bot) (*IdDocumentData, []byte, []byte, [][]byte, error) {
if !epe.IsInternalPassport() || !sv.HasData() || !sv.HasFrontSide() {
return nil, nil, nil, nil, nil
}
body, err := sv.Data.decrypt(epe.Data)
if err != nil {
return nil, nil, nil, nil, err
}
var idd IdDocumentData
if err = json.Unmarshal(body, &idd); err != nil {
return nil, nil, nil, nil, err
}
fs, err := b.DecryptFile(epe.FrontSide, sv.FrontSide)
if err != nil {
return &idd, nil, nil, nil, err
}
var s []byte
if sv.HasSelfie() {
if s, err = b.DecryptFile(epe.Selfie, sv.Selfie); err != nil {
return &idd, fs, nil, nil, err
}
}
t := make([][]byte, len(sv.Translation))
if sv.HasTranslation() {
for i := range t {
if t[i], err = b.DecryptFile(&epe.Translation[i], &sv.Translation[i]); err != nil {
return &idd, fs, s, nil, err
}
}
*/
}
return nil, nil
return &idd, fs, s, t, nil
}
func (epe *EncryptedPassportElement) DecryptDriverLicense(sv *SecureValue, b *Bot) (*IdDocumentData, []byte, []byte, []byte, [][]byte, error) {
if !epe.IsDriverLicense() || !sv.HasData() || !sv.HasFrontSide() || !sv.HasReverseSide() {
return nil, nil, nil, nil, nil, nil
}
body, err := sv.Data.decrypt(epe.Data)
if err != nil {
return nil, nil, nil, nil, nil, err
}
var idd IdDocumentData
if err = json.Unmarshal(body, &idd); err != nil {
return nil, nil, nil, nil, nil, err
}
fs, err := b.DecryptFile(epe.FrontSide, sv.FrontSide)
if err != nil {
return &idd, nil, nil, nil, nil, err
}
rs, err := b.DecryptFile(epe.ReverseSide, sv.ReverseSide)
if err != nil {
return &idd, nil, nil, nil, nil, err
}
var s []byte
if sv.HasSelfie() {
if s, err = b.DecryptFile(epe.Selfie, sv.Selfie); err != nil {
return &idd, fs, rs, nil, nil, err
}
}
t := make([][]byte, len(sv.Translation))
if sv.HasTranslation() {
for i := range t {
if t[i], err = b.DecryptFile(&epe.Translation[i], &sv.Translation[i]); err != nil {
return &idd, fs, rs, s, nil, err
}
}
}
return &idd, fs, rs, s, t, nil
}
func (epe *EncryptedPassportElement) IsAddress() bool {