Home | History | Annotate | Download | only in rsa

Lines Matching refs:em

46 	// EM = 0x00 || 0x02 || PS || 0x00 || M
47 em := make([]byte, k)
48 em[1] = 2
49 ps, mm := em[2:len(em)-len(msg)-1], em[len(em)-len(msg):]
54 em[len(em)-len(msg)-1] = 0
57 m := new(big.Int).SetBytes(em)
60 copyWithLeftPad(em, c.Bytes())
61 return em, nil
114 valid, em, index, err := decryptPKCS1v15(rand, priv, ciphertext)
119 if len(em) != k {
125 valid &= subtle.ConstantTimeEq(int32(len(em)-index), int32(len(key)))
126 subtle.ConstantTimeCopy(valid, key, em[len(em)-len(key):])
133 // returned in em so that it may be read independently of whether it was valid
135 // valid then index contains the index of the original message in em.
136 func decryptPKCS1v15(rand io.Reader, priv *PrivateKey, ciphertext []byte) (valid int, em []byte, index int, err error) {
149 em = leftPad(m.Bytes(), k)
150 firstByteIsZero := subtle.ConstantTimeByteEq(em[0], 0)
151 secondByteIsTwo := subtle.ConstantTimeByteEq(em[1], 2)
159 for i := 2; i < len(em); i++ {
160 equals0 := subtle.ConstantTimeByteEq(em[i], 0)
166 // bytes into em.
171 return valid, em, index, nil
240 // EM = 0x00 || 0x01 || PS || 0x00 || T
241 em := make([]byte, k)
242 em[1] = 1
244 em[i] = 0xff
246 copy(em[k-tLen:k-hashLen], prefix)
247 copy(em[k-hashLen:k], hashed)
249 m := new(big.Int).SetBytes(em)
255 copyWithLeftPad(em, c.Bytes())
256 return em, nil
278 em := leftPad(m.Bytes(), k)
279 // EM = 0x00 || 0x01 || PS || 0x00 || T
281 ok := subtle.ConstantTimeByteEq(em[0], 0)
282 ok &= subtle.ConstantTimeByteEq(em[1], 1)
283 ok &= subtle.ConstantTimeCompare(em[k-hashLen:k], hashed)
284 ok &= subtle.ConstantTimeCompare(em[k-tLen:k-hashLen], prefix)
285 ok &= subtle.ConstantTimeByteEq(em[k-tLen-1], 0)
288 ok &= subtle.ConstantTimeByteEq(em[i], 0xff)