The normal of a triangle can be computed with the cross product of two of its sides.



Code:
normalize ( vec_cross ( vec_diff ( B.x, A.x ), vec_diff ( C.x, A.x ) ) );



but as sivan said, the normal of a vertex should be the average of normals of all neighbouring faces.

I don't know how the vertexes are ordered into the triangel buffer, so you should check to compute them in clockwise order.

Salud!